Azure Front Door Kuralları Kümesi Sunucu Değişkenleri

Şunlar için geçerlidir: ✔️ Front Door Standard ✔️ Front Door Premium

Kural kümesi sunucu değişkenleri, Kural kümeleriyle çalışırken istekle ilgili yapılandırılmış bilgilere erişim sağlar.

Kural kümesi eşleştirme koşullarını kullandığınızda, sunucu değişkenleri belirli özelliklere sahip istekleri tanımlayabilmeniz için eşleşme koşulları olarak kullanılabilir.

Kural kümesi eylemlerini kullandığınızda, istek ve yanıt üst bilgilerini dinamik olarak değiştirmek ve URL'leri, yolları ve sorgu dizelerini yeniden yazmak için (örneğin, yeni bir sayfa yüklendiğinde veya form gönderildiğinde) sunucu değişkenlerini kullanabilirsiniz.

Not

Sunucu değişkenleri yalnızca Azure Front Door Standard ve Premium katmanlarında kullanılabilir.

Desteklenen değişkenler

Değişken adı Açıklama
socket_ip Azure Front Door edge'e doğrudan bağlantının IP adresi. İstemci isteği göndermek için bir HTTP ara sunucusu veya yük dengeleyici kullandıysa, değeri socket_ip ara sunucu veya yük dengeleyicinin IP adresidir.
Eşleştirme koşulunda bu sunucu değişkenine erişmek için Yuva adresi'ni kullanın.
client_ip Özgün isteği yapan istemcinin IP adresi. İstekte bir X-Forwarded-For üst bilgi varsa, istemci IP adresi üst bilgiden seçilir.
Bu sunucu değişkenine erişmek için eşleştirme koşulunda Remote address kullanın ve Operatör'ü IP Eşleşmesi veya IP Eşleşmemesi olarak yapılandırın.
client_port İsteği yapan istemcinin IP bağlantı noktası.
Eşleştirme koşulunda bu sunucu değişkenine erişmek için İstemci bağlantı noktasını kullanın.
hostname İstemciden gelen istekte belirtilen ana bilgisayar adı.
Eşleştirme koşulunda bu sunucu değişkenine erişmek için Ana bilgisayar adını kullanın.
geo_country İstekte bulunanın ülke/bölge kaynağını ülke/bölge koduyla gösterir.
Eşleştirme koşulunda bu sunucu değişkenine erişmek için Uzak adresi kullanın ve İşleciCoğrafi Eşleşme veya Coğrafi Uyumsuzluk olarak yapılandırın.
http_method VEYA GETgibi POST URL isteğinde bulunmak için kullanılan yöntem.
Bu sunucu değişkenine bir eşleşme koşulunda erişmek için request yöntemini kullanın.
http_version İstek protokolü. Genellikle HTTP/1.0, HTTP/1.1veya HTTP/2.0.
Eşleştirme koşulunda bu sunucu değişkenine erişmek için HTTP sürümünü kullanın.
query_string İstenen URL'deki ? sonrasında gelen değişken/değer çiftlerinin listesi.
Örneğin, http://contoso.com:8080/article.aspx?id=123&title=fabrikam isteğinde query_string değeri id=123&title=fabrikam'dir.
Eşleştirme koşulunda bu sunucu değişkenine erişmek için Sorgu dizesini kullanın.
request_scheme İstek düzeni: http veya https.
Bu sunucu değişkenine bir eşleşme koşulunda erişmek için İstek protokolü'ni kullanın.
request_uri Tam özgün istek URI'si (bağımsız değişkenlerle).
Örneğin, http://contoso.com:8080/article.aspx?id=123&title=fabrikam isteğinde request_uri değeri http://contoso.com:8080/article.aspx?id=123&title=fabrikam'dir.
Eşleştirme koşulunda bu sunucu değişkenine erişmek için İstek URL'sini kullanın.
ssl_protocol Yerleşik bir TLS bağlantısının protokolü.
Bu sunucu değişkenine bir eşleşme koşulunda erişmek için SSL protokolü kullanın.
server_port İsteği kabul eden sunucunun bağlantı noktası.
Eşleştirme koşulunda bu sunucu değişkenine erişmek için Sunucu bağlantı noktasını kullanın.
url_path Web istemcisinin erişmek istediği konaktaki belirli kaynağı tanımlar. İstek URI'sinin, öndeki eğik çizgi veya parametreler olmadan kalan kısmıdır.
Örneğin, http://contoso.com:8080/article.aspx?id=123&title=fabrikam isteğinde url_path değeri article.aspx'dir.
Azure Front Door, {url_path:seg#} sunucu değişkeniyle URL yolunun dinamik olarak yakalanmasını destekler ve URL yolunu küçük harfe {url_path.tolower} veya büyük harfe {url_path.toupper} dönüştürür. Daha fazla bilgi için bkz . Sunucu değişkeni biçimi ve Sunucu değişkenleri.
Bu sunucu değişkenine bir eşleşme koşulunda erişmek için İstek yolu koşulu'nu kullanın.
http_req_header_<headername> İstek başlığının değerini yakalar. Örneğin, istek üst bilgisi için Cihaz: Masaüstü, değişken http_req_header_Device'dir ve bu değişkenin değeri Masaüstü'dür.
Değişken sözdizimindeki üstbilgi adları, alfasayısal karakterler ve kısa çizgi (a-z, A-Z, 0-9 ve "-") içerebilir.
http_req_arg_<querystringkeyname> Sorgu dizesi anahtar değer çiftinden değeri yakalar. Örneğin, istekte http://contoso.com:8080/article.aspx?id=123&title=fabrikam değişkeni http_req_header_id, bu değişkenin değeri 123'tür.
Değişken söz diziminde, sorgu dizesi anahtarının alfasayısal karakterleri ve kısa çizgiyi (a-z, A-Z, 0-9 ve "-") desteklemesi gerekir.
http_resp_header_<headername> Kaynağın yanıt başlığının değerini alır. Örneğin, Access-Control-Allow-Origin https://learn.microsoft.com yanıt üst bilgisi için, değişken http_req_header_ Access-Control-Allow-Origin üst bilgisidir ve bu değişkenin değeri https://learn.microsoft.com olarak belirlenmiştir.
Değişken sözdizimindeki üstbilgi adları, alfasayısal karakterler ve kısa çizgi (a-z, A-Z, 0-9 ve "-") içerebilir.

Sunucu değişkeni biçimi

Kural Kümesi eylemleriyle çalışırken, aşağıdaki biçimleri kullanarak sunucu değişkenlerini belirtin:

  • {variable}: Sunucu değişkeninin tamamını ekleyin. Örneğin, istemci IP adresi 111.222.333.444 ise, {client_ip} belirteci 111.222.333.444 olarak değerlendirilir.
  • {variable:offset}: Belirli bir uzaklık sonrasında, değişkenin sonuna kadar sunucu değişkenini ekleyin. Uzaklık sıfır tabanlıdır. Örneğin, istemci IP adresi 111.222.333.444 ise, {client_ip:3} belirteci .222.333.444 olarak değerlendirilir.
  • {variable:offset:length}: Belirtilen mesafeden sonra ve belirtilen uzunluğa kadar sunucu değişkenini ekleyin. Uzaklık sıfır tabanlıdır. Örneğin, değişken 'AppId=01f592979c584d0f9d679db3e66a3e5e' olduğunda,
    • Aralık içindeki uzaklıklar, uzunluk yok: {var:0} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:6} = 01f592979c584d0f9d679db3e66a3e5e, {var:-8} = e66a3e5e
    • Sapmalar aralık dışında, uzunluk belirtilmedi: {var:-128} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:128} = null
    • Aralık içindeki uzaklıklar ve uzunluklar: {var:0:5} = AppId, , {var:7:7} = 1f59297{var:7:-7} = 1f592979c584d0f9d679db3e
    • Sıfır uzunluk: {var:0:0} = null, {var:4:0} = null
    • Aralık içindeki uzaklıklar ve aralık dışında uzunluklar: {var:0:100} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:5:100} = =01f592979c584d0f9d679db3e66a3e5e, {var:0:-48} = null, {var:4:-48} = null
    • {variable:offset:length} öğesinin nasıl çalıştığıyla ilgili denemeler yapmak için bir Linux bash terminali açın veya Azure Cloud Shell'de bash terminali kullanın. Aşağıdaki örneği terminale girin ve alt dize ayıklamanın nasıl davrandığını anlamak için çıkışı inceleyin.
variable=helloworld123; echo ${variable:5} #Output = world123
variable=helloworld123; echo ${variable:0:5}  #Output = hello

Not

Bash'te, söz dizimi hatalarını önlemek için parametre genişletmesindeki negatif bir sayıdan önce bir boşluk gerekir.

variable=helloworld123; echo ${variable: -3:3} #Output=123 
variable=helloworld123; echo ${variable:5: -3} #Output = world
  • {url_path:seg#}: Kullanıcıların URL Yeniden Yönlendirme, URL Yeniden Yazma veya anlamlı bir eylemde istenen URL yolu kesimini yakalamasına ve kullanmasına izin verin. Kullanıcı, alt dize yakalama ile aynı stili kullanarak birden çok segmenti de yakalayabilir {url_path:seg1:3}. Örneğin, kaynak deseni /id/12345/default ve URL yeniden yazma Hedefi /{url_path:seg1}/homeiçin, yeniden yazmadan sonra beklenen URL yolu şeklindedir /12345/home. Birden çok segmentli yakalama için, kaynak desen /id/12345/default/location/test olduğunda, /{url_path:seg1:3}/home URL yeniden yazma hedefi /12345/default/location/home ile sonuçlanır. Segment yakalama konum yolunu içerir, bu nedenle yol /match/* ise, segment 0 eşleşecektir.

    Ofset, başlangıç segmentinin dizinine karşılık gelir ve uzunluk, dizin = ofset dahil olmak üzere kaç segmentin yakalanacağını belirtir.

    Uzaklık ve uzunluğun pozitif olduğunu varsayarsak, aşağıdaki mantık geçerlidir:

    • Eğer uzunluk dahil değilse, parçayı indis = uzaklık noktasında yakalayın.
    • Uzunluk dahil edildiğinde, segmentleri, başlangıç noktası dizin = uzaklık'tan dizin = uzaklık + uzunluk'a kadar olacak şekilde yakalayın.

    Aşağıdaki özel durumlar da işlenir:

    • Uzaklık negatifse, başlangıç segmentini almak için yolun sonundan geriye doğru sayarak ilerleyin.
    • Uzaklık, segment sayısından büyük veya buna eşit negatif bir değerse 0 olarak ayarlayın.
    • Uzaklık segment sayısından büyükse sonuç boş olur.
    • Uzunluk 0 ise, ofset tarafından belirtilen tek segmenti döndürür.
    • Uzunluk negatifse, ikinci bir uzaklık olarak değerlendirin ve yolun sonundan geriye doğru hesaplama yapın. Değer uzaklık değerinden küçükse boş bir dizeyle sonuçlanır.
    • Uzunluk, segment sayısından büyükse, yolun geri kalanını döndürün.
  • {url_path.tolower} / {url_path.toupper}: URL yolunu küçük veya büyük harfe dönüştürün. Örneğin, {url_path.tolower} sonucunu doğuran, URL yeniden yazma/yönlendirmedeki bir hedef /lowercase/ABcDXyZ/EXAMPLE için /lowercase/abcdxyz/example. URL'deki bir hedef{url_path.toupper}, içindeki /ABcDXyZ/examplesonuçlar için /ABCDXYZ/EXAMPLE yeniden yazma/yeniden yönlendirme.

Desteklenen kural kümesi eylemleri

Sunucu değişkenleri aşağıdaki Kural kümesi eylemlerinde desteklenir:

Sonraki adımlar

  • Azure Front Door Kural kümesi hakkında daha fazla bilgi edinin.
  • Kural kümesi eşleştirme koşulları hakkında daha fazla bilgi edinin.
  • Kural kümesi eylemleri hakkında daha fazla bilgi edinin.