Aturan Azure Front Door mengatur variabel server
Variabel server kumpulan aturan memberikan akses ke informasi terstruktur tentang permintaan saat Anda bekerja dengan Set aturan.
Saat Anda menggunakan kondisi pencocokan set aturan, variabel server tersedia sebagai kondisi kecocokan sehingga Anda dapat mengidentifikasi permintaan dengan properti tertentu.
Saat Anda menggunakan tindakan Seperangkat aturan, Anda dapat menggunakan variabel server untuk mengubah header permintaan dan respons secara dinamis, dan menulis ulang URL, jalur, dan string kueri, misalnya, saat halaman baru dimuat atau saat formulir diposting.
Catatan
Variabel server tersedia dengan tingkat Azure Front Door Standard dan Premium.
Variabel yang didukung
Nama variabel | Deskripsi |
---|---|
socket_ip |
Alamat IP dari koneksi langsung ke tepi Azure Front Door. Jika komputer klien menggunakan proksi HTTP atau penyeimbang beban untuk mengirim permintaan, nilai socket_ip adalah alamat IP dari proksi atau penyeimbang beban.Untuk mengakses variabel server ini dalam kondisi cocok, gunakan Alamat soket. |
client_ip |
Alamat IP klien yang membuat permintaan. Jika ada header X-Forwarded-For dalam permintaan, alamat IP komputer klien akan diambil dari header.Untuk mengakses variabel server ini dalam kondisi kecocokan, gunakan Alamat jarak jauh dan konfigurasikan Operator ke IP Cocok atau IP Tidak Cocok. |
client_port |
Alamat IP klien yang membuat permintaan. Untuk mengakses variabel server ini dalam kondisi kecocokan, gunakan Port klien. |
hostname |
Nama host dalam permintaan dari komputer klien. Untuk mengakses variabel server ini dalam kondisi kecocokan, gunakan Nama host. |
geo_country |
Menunjukkan negara/wilayah asal pemohon melalui kode negara/wilayahnya. Untuk mengakses variabel server ini dalam kondisi cocok, gunakan Alamat jarak jauh dan konfigurasikan Operator ke Geo Cocok atau Geo Tidak Cocok. |
http_method |
Metode yang digunakan untuk membuat permintaan URL, seperti GET atau POST .Untuk mengakses variabel server ini dalam kondisi kecocokan, gunakan Metode permintaan. |
http_version |
Protokol permintaan. Biasanya HTTP/1.0 , HTTP/1.1 , atau HTTP/2.0 .Untuk mengakses variabel server ini dalam kondisi kecocokan, gunakan versi HTTP. |
query_string |
Daftar pasangan variabel/nilai yang mengikuti ? dalam URL yang diminta.Misalnya, dalam permintaan http://contoso.com:8080/article.aspx?id=123&title=fabrikam , nilainya query_string adalah id=123&title=fabrikam .Untuk mengakses variabel server ini dalam kondisi kecocokan, gunakan String kueri. |
request_scheme |
Skema permintaan: http atau https .Untuk mengakses variabel server ini dalam kondisi kecocokan, gunakan Protokol permintaan. |
request_uri |
Permintaan asli lengkap URI (dengan argumen). Misalnya, dalam permintaan http://contoso.com:8080/article.aspx?id=123&title=fabrikam , nilainya request_uri adalah http://contoso.com:8080/article.aspx?id=123&title=fabrikam .Untuk mengakses variabel server ini dalam kondisi kecocokan, gunakan URL Permintaan. |
ssl_protocol |
Protokol koneksi TLS yang dibuat. Untuk mengakses variabel server ini dalam kondisi kecocokan, gunakan protokol SSL. |
server_port |
Port server yang menerima permintaan. Untuk mengakses variabel server ini dalam kondisi kecocokan, gunakan Port server. |
url_path |
Mengidentifikasi sumber daya spesifik di host yang ingin diakses klien web. Ini adalah bagian dari URI permintaan tanpa argumen atau garis miring terkemuka. Misalnya, dalam permintaan http://contoso.com:8080/article.aspx?id=123&title=fabrikam , nilainya url_path adalah article.aspx . Azure Front Door mendukung pengambilan dinamis jalur URL dengan {url_path:seg#} variabel server, dan mengonversi jalur URL menjadi huruf kecil atau huruf besar dengan {url_path.tolower} atau {url_path.toupper} . Untuk informasi selengkapnya, lihat Format variabel server dan Variabel server. Untuk mengakses variabel server ini dalam kondisi kecocokan, gunakan kondisi Jalur permintaan. |
Format variabel server
Saat Anda bekerja dengan tindakan Kumpulan Aturan, tentukan variabel server dengan menggunakan format berikut:
{variable}
: Menyertakan seluruh variabel server. Misalnya, jika alamat IP komputer klien adalah111.222.333.444
, maka token{client_ip}
akan dievaluasi ke111.222.333.444
.{variable:offset}
: Menyertakan variabel server setelah offset tertentu, hingga akhir variabel. Offset berbasis nol. Misalnya, jika alamat IP komputer klien adalah111.222.333.444
, maka token{client_ip:3}
akan dievaluasi ke.222.333.444
.{variable:offset:length}
: Menyertakan variabel server setelah offset tertentu, hingga panjang yang ditentukan. Offset berbasis nol. Misalnya, ketika var variabel adalah 'AppId=01f592979c584d0f9d679db3e66a3e5e',- Offset dalam jangkauan, tanpa panjang:
{var:0}
=AppId=01f592979c584d0f9d679db3e66a3e5e
,{var:6}
=01f592979c584d0f9d679db3e66a3e5e
,{var:-8}
=e66a3e5e
- Offset di luar jangkauan, tanpa panjang:
{var:-128}
=AppId=01f592979c584d0f9d679db3e66a3e5e
,{var:128}
= null - Offset dan panjang dalam rentang:
{var:0:5}
=AppId
,{var:7:7}
=1f59297
,{var:7:-7}
=1f592979c584d0f9d679db3e
- Panjang nol:
{var:0:0}
= null,{var:4:0}
= null - Offset dalam jangkauan dan panjang di luar jangkauan:
{var:0:100}
=AppId=01f592979c584d0f9d679db3e66a3e5e
,{var:5:100}
==01f592979c584d0f9d679db3e66a3e5e
,{var:0:-48}
= null,{var:4:-48}
= null
- Offset dalam jangkauan, tanpa panjang:
{url_path:seg#}
: Izinkan pengguna untuk mengambil dan menggunakan segmen jalur URL yang diinginkan di Pengalihan URL, Penulisan Ulang URL, atau tindakan yang bermakna. Pengguna juga dapat mengambil beberapa segmen dengan menggunakan gaya yang sama dengan pengambilan{url_path:seg1:3}
substring . Misalnya, untuk pola/id/12345/default
sumber dan Tujuan/{url_path:seg1}/home
penulisan ulang URL, jalur URL yang diharapkan setelah penulisan ulang adalah/12345/home
. Untuk pengambilan beberapa segmen, saat pola sumber adalah/id/12345/default/location/test
, tujuan/{url_path:seg1:3}/home
penulisan ulang URL menghasilkan/12345/default/location/home
. Pengambilan segmen mencakup jalur lokasi, jadi jika rute adalah/match/*
, segmen 0 akan cocok.Offset sesuai dengan indeks segmen mulai, dan panjangnya mengacu pada berapa banyak segmen yang akan diambil, termasuk yang ada di indeks = offset.
Dengan asumsi offset dan panjangnya positif, logika berikut berlaku:
- Jika panjang tidak disertakan, ambil segmen pada indeks = offset.
- Ketika panjang disertakan, ambil segmen dari indeks = offset up till index = offset + length.
Kasus khusus berikut juga ditangani:
- Jika offset negatif, hitung mundur dari akhir jalur untuk mendapatkan segmen awal.
- Jika offset adalah nilai negatif yang lebih besar dari atau sama dengan jumlah segmen, atur ke 0.
- Jika offset lebih besar dari jumlah segmen, hasilnya kosong.
- Jika panjangnya adalah 0, kembalikan segmen tunggal yang ditentukan oleh offset
- Jika panjangnya negatif, perlakukan sebagai offset kedua dan hitung mundur dari akhir jalur. Jika nilainya kurang dari offset, nilai tersebut menghasilkan string kosong.
- Jika panjang lebih besar dari jumlah segmen, kembalikan apa yang tersisa di jalur.
{url_path.tolower}
/{url_path.toupper}
: Konversi jalur URL menjadi huruf kecil atau huruf besar. Misalnya, tujuan{url_path.tolower}
dalam penulisan ulang/pengalihan URL untuk/lowercase/ABcDXyZ/EXAMPLE
hasil di/lowercase/abcdxyz/example
. Tujuan{url_path.toupper}
dalam penulisan ulang/pengalihan URL untuk/ABcDXyZ/example
hasil di/ABCDXYZ/EXAMPLE
.
Tindakan kumpulan aturan yang didukung
Variabel server didukung pada tindakan kumpulan Aturan berikut:
- Perilaku caching string kueri dalam Penimpaan konfigurasi rute
- Ubah header permintaan
- Ubah header respons
- Pengalihan URL
- Penulisan ulang URL
Langkah berikutnya
- Pelajari selengkapnya tentang Set Aturan Azure Front Door.
- Pelajari selengkapnya tentang Kondisi kecocokan yang ditetapkan aturan.
- Pelajari selengkapnya tentang Tindakan kumpulan aturan.