URL Yolu Tabanlı Yönlendirmeye genel bakış
URL Yolu Tabanlı Yönlendirme, isteğin URL Yollarına göre trafiği arka uç sunucu havuzlarına yönlendirmenizi sağlar.
Senaryolardan biri, farklı içerik türleri için istekleri farklı arka uç sunucu havuzlarına yönlendirmektir.
Aşağıdaki örnekte Application Gateway üç arka uç sunucu havuzundan contoso.com trafiği sunmaktadır: VideoServerPool, ImageServerPool ve DefaultServerPool.
http://contoso.com/video/* için istekler VideoServerPool’a ve http://contoso.com/images/* için istekler ImageServerPool’a yönlendirilir. Yol desenlerinden hiçbiri eşleşmiyorsa DefaultServerPool seçilir.
Not
İstek yönlendirildiğinde tam URL yolu arka uç havuzuna gönderilir. İstenen kaynaklar farklı bir yoldaysa (örneğin , * isteği VideoServerPool'un http://contoso.com/video/arkasındaki sitenin kökünden videoların servis edilmesini gerektiriyorsa) bir URL Yeniden Yazma Kuralı yapılandırmanız veya arka uç ayarlarınızda arka uç yolunu geçersiz kılmanız gerekir.
Önemli
Hem v1 hem de v2 SKU'ları için kurallar portalda listelendikleri sırayla işlenir. Yol kuralları oluştururken en iyi yöntem, sonunda en az belirli yola (joker karakterlere sahip olanlar) sahip olmaktır. Joker karakterler en üstteyse, sonraki yol kurallarında daha belirgin bir eşleşme olsa bile öncelikleri alır.
Temel dinleyici listede ilk sıradaysa ve gelen bir istekle eşleşiyorsa, o dinleyici tarafından işlenir. Ancak, temel dinleyiciyi yapılandırmadan önce çok siteli dinleyicilerin yapılandırılması kesinlikle önerilir. Bu işlem, trafiğin doğru arka uca yönlendirilmesini güvence altına alır.
UrlPathMap yapılandırma öğesi
urlPathMap öğesi, arka uç sunucu havuzu eşlemelerine yol desenleri belirtmek için kullanılır. Aşağıdaki kod örneği, şablon dosyasındaki urlPathMap öğesinin kod parçacığıdır.
"urlPathMaps": [{
"name": "{urlpathMapName}",
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/urlPathMaps/{urlpathMapName}",
"properties": {
"defaultBackendAddressPool": {
"id": "/subscriptions/ {subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendAddressPools/{poolName1}"
},
"defaultBackendHttpSettings": {
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendHttpSettingsCollection/{settingname1}"
},
"pathRules": [{
"name": "{pathRuleName}",
"properties": {
"paths": [
"{pathPattern}"
],
"backendAddressPool": {
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendAddressPools/{poolName2}"
},
"backendHttpsettings": {
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendHttpSettingsCollection/{settingName2}"
}
}
}]
}
}]
PathPattern
PathPattern, eşleşmesi gereken yol desenlerinin listesidir. Her yol / ile başlamalıdır ve joker karakter olarak * kullanabilir. Yol eşleştiricisine beslenen dize, ilk ?
veya #
sonrasında herhangi bir metin içermez ve bu karakterlere burada izin verilmez. Aksi takdirde, PathPattern'da URL'de izin verilen tüm karakterlere izin verilir.
Yol kuralları büyük/küçük harfe duyarlı değildir.
Yol deseni | Destekleniyor mu? |
---|---|
/images/* |
evet |
/images* |
evet |
/images/*.jpg |
hayır |
/*.jpg |
hayır |
/Repos/*/Comments/* |
hayır |
/CurrentUser/Comments/* |
evet |
Yol kuralları, portalda nasıl listelendiğine bağlı olarak sırayla işlenir. En son işlenebilmesi için en az belirli yol (joker karakterler içeren) listenin sonunda olmalıdır. Joker karakter kuralları listenin en üstünde yer alıyorsa öncelikleri alır ve önce işlenir. Aşağıdaki örnek senaryolara bakın.
Örnekler
Joker karakter (*) kullanıldığında yol tabanlı kural işleme:
Örnek 1:
/master-dev* to contoso.com
/master-dev/api-core/ to fabrikam.com
/master-dev/* to microsoft.com
Joker karakter yolu /master-dev*
daha ayrıntılı yolların üzerinde bulunduğundan, içeren /master-dev
tüm istemci istekleri, belirli /master-dev/api-core/
dahil olmak üzere contoso.com yönlendirilir. İstemci isteklerinin uygun yollara yönlendirildiğinden emin olmak için, ayrıntılı yolların joker karakter yollarının üzerinde olması kritik önem taşır.
Örnek 2:
/ (default) to contoso.com
/master-dev/api-core/ to fabrikam.com
/master-dev/api to bing.com
/master-dev/* to microsoft.com
Yol deseni /master-dev/*
olan tüm istemci istekleri, listelenen sırayla işlenir. Yol kurallarında eşleşme yoksa, istek varsayılan hedefe yönlendirilir.
Daha fazla bilgi için bkz . URL tabanlı yönlendirmeyi kullanan Resource Manager şablonu.
PathBasedRouting kuralı
PathBasedRouting türündeki RequestRoutingRule, bir dinleyiciyi urlPathMap’e bağlamak için kullanılır. Bu dinleyici için alınan tüm istekler, urlPathMap’te belirtilen ilkeye göre yönlendirilir. PathBasedRouting kuralının kod parçacığı:
"requestRoutingRules": [
{
"name": "{ruleName}",
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/requestRoutingRules/{ruleName}",
"properties": {
"ruleType": "PathBasedRouting",
"httpListener": {
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/httpListeners/<listenerName>"
},
"urlPathMap": {
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/urlPathMaps/{urlpathMapName}"
}
}
}
]
Sonraki adımlar
URL tabanlı içerik yönlendirme hakkında bilgi edindikten sonra, URL yönlendirme kurallarıyla bir uygulama ağ geçidi oluşturmak için URL tabanlı yönlendirme kullanan uygulama ağ geçidi oluşturma bölümüne gidin.