Zmienne serwera zestawu reguł usługi Azure Front Door
Zmienne serwera zestawu reguł zapewniają dostęp do informacji strukturalnych dotyczących żądania podczas pracy z zestawami reguł.
W przypadku używania warunków dopasowania zestawu reguł zmienne serwera są dostępne jako warunki dopasowania, dzięki czemu można identyfikować żądania z określonymi właściwościami.
W przypadku używania akcji zestawu reguł można użyć zmiennych serwera do dynamicznej zmiany nagłówków żądania i odpowiedzi oraz ponownego zapisywania adresów URL, ścieżek i ciągów zapytania, na przykład podczas ładowania nowej strony lub po wysłaniu formularza.
Uwaga
Zmienne serwera są dostępne w warstwach Azure Front Door Standard i Premium.
Obsługiwane zmienne
Nazwa zmiennej | opis |
---|---|
socket_ip |
Adres IP bezpośredniego połączenia z usługą Azure Front Door Edge. Jeśli klient użył serwera proxy HTTP lub modułu równoważenia obciążenia do wysłania żądania, wartość socket_ip to adres IP serwera proxy lub modułu równoważenia obciążenia.Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj adresu gniazda. |
client_ip |
Adres IP klienta, który złożył oryginalne żądanie. Jeśli w żądaniu znajdował się X-Forwarded-For nagłówek, adres IP klienta jest wybierany z nagłówka.Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj adresu zdalnego i skonfiguruj operator do dopasowania adresu IP lub niezgodnego adresu IP. |
client_port |
Port IP klienta, który złożył żądanie. Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj portu klienta. |
hostname |
Nazwa hosta w żądaniu od klienta. Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj nazwy hosta. |
geo_country |
Wskazuje kraj/region obiektu żądającego za pośrednictwem kodu kraju/regionu. Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj adresu zdalnego i skonfiguruj operator do dopasowania geograficznego lub niezgodnego geograficznego. |
http_method |
Metoda używana do tworzenia żądania adresu URL, takiego jak GET lub POST .Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj metody Request. |
http_version |
Protokół żądania. Zazwyczaj HTTP/1.0 , HTTP/1.1 lub HTTP/2.0 .Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj wersji PROTOKOŁU HTTP. |
query_string |
Lista par zmiennych/wartości, które są zgodne z ? adresem w żądanym adresie URL.Na przykład w żądaniu http://contoso.com:8080/article.aspx?id=123&title=fabrikam query_string wartość to id=123&title=fabrikam .Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj ciągu zapytania. |
request_scheme |
Schemat żądania: http lub https .Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj protokołu Request. |
request_uri |
Pełny oryginalny identyfikator URI żądania (z argumentami). Na przykład w żądaniu http://contoso.com:8080/article.aspx?id=123&title=fabrikam request_uri wartość to http://contoso.com:8080/article.aspx?id=123&title=fabrikam .Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj adresu URL żądania. |
ssl_protocol |
Protokół ustanowionego połączenia TLS. Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj protokołu SSL. |
server_port |
Port serwera, który zaakceptował żądanie. Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj portu serwera. |
url_path |
Identyfikuje określony zasób na hoście, do którego klient internetowy chce uzyskać dostęp. Jest to część identyfikatora URI żądania bez argumentów lub wiodącego ukośnika. Na przykład w żądaniu http://contoso.com:8080/article.aspx?id=123&title=fabrikam url_path wartość to article.aspx . Usługa Azure Front Door obsługuje dynamiczne przechwytywanie ścieżki adresu URL ze zmienną {url_path:seg#} serwera i konwertuje ścieżkę adresu URL na małe litery lub wielkie litery za pomocą {url_path.tolower} polecenia lub {url_path.toupper} . Aby uzyskać więcej informacji, zobacz Format zmiennej serwera i Zmienne serwera. Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj warunku ścieżki żądania. |
Format zmiennej serwera
Podczas pracy z akcjami zestawu reguł określ zmienne serwera przy użyciu następujących formatów:
{variable}
: uwzględnij całą zmienną serwera. Jeśli na przykład adres IP klienta to111.222.333.444
token zostanie obliczony{client_ip}
na111.222.333.444
wartość .{variable:offset}
: uwzględnij zmienną serwera po określonym przesunięcie do końca zmiennej. Przesunięcie jest oparte na zera. Jeśli na przykład adres IP klienta to111.222.333.444
token zostanie obliczony{client_ip:3}
na.222.333.444
wartość .{variable:offset:length}
: uwzględnij zmienną serwera po określonym przesunięeniu do określonej długości. Przesunięcie jest oparte na zera. Na przykład, gdy zmienna var ma wartość "AppId=01f592979c584d0f9d679db3e6a3e5e",- Przesunięcia w zakresie, bez długości:
{var:0}
=AppId=01f592979c584d0f9d679db3e66a3e5e
, ,{var:6}
=01f592979c584d0f9d679db3e66a3e5e
{var:-8}
=e66a3e5e
- Przesunięcie poza zakres, bez długości:
{var:-128}
=AppId=01f592979c584d0f9d679db3e66a3e5e
,{var:128}
= null - Przesunięcia i długości w zakresie:
{var:0:5}
=AppId
, ,{var:7:7}
=1f59297
{var:7:-7}
=1f592979c584d0f9d679db3e
- Długość zerowa:
{var:0:0}
= null,{var:4:0}
= null - Przesunięcia w zakresie i długościach poza zakresem:
{var:0:100}
=AppId=01f592979c584d0f9d679db3e66a3e5e
, ,{var:5:100}
{var:0:-48}
==01f592979c584d0f9d679db3e66a3e5e
= null,{var:4:-48}
= null
- Przesunięcia w zakresie, bez długości:
{url_path:seg#}
: Zezwalaj użytkownikom na przechwytywanie i używanie żądanego segmentu ścieżki adresu URL w obszarze Przekierowanie adresu URL, Ponowne zapisywanie adresów URL lub dowolną znaczącą akcję. Użytkownik może również przechwytywać wiele segmentów przy użyciu tego samego stylu co przechwytywanie{url_path:seg1:3}
podciągów. Na przykład w przypadku wzorca/id/12345/default
źródłowego i ponownego zapisywania adresu URL miejsca docelowego/{url_path:seg1}/home
oczekiwana ścieżka adresu URL po ponownym zapisaniu to/12345/home
. W przypadku przechwytywania wielu segmentów, gdy wzorzec źródłowy to/id/12345/default/location/test
, adres URL ponownie zapisuje miejsce docelowe/{url_path:seg1:3}/home
w pliku/12345/default/location/home
. Przechwytywanie segmentu obejmuje ścieżkę lokalizacji, więc jeśli trasa to/match/*
, segment 0 będzie zgodny.Przesunięcie odpowiada indeksowi segmentu początkowego, a długość odnosi się do liczby segmentów do przechwycenia, w tym do indeksu = przesunięcia.
Przy założeniu, że przesunięcie i długość są dodatnie, stosowana jest następująca logika:
- Jeśli długość nie jest uwzględniona, przechwyć segment na indeksie = przesunięcie.
- Gdy długość jest uwzględniona, przechwytuje segmenty z indeksu = przesunięcie do indeksu = przesunięcie + długość.
Obsługiwane są również następujące specjalne przypadki:
- Jeśli przesunięcie jest ujemne, policz wstecz od końca ścieżki, aby uzyskać segment początkowy.
- Jeśli przesunięcie jest wartością ujemną większą lub równą liczbie segmentów, ustaw wartość 0.
- Jeśli przesunięcie jest większe niż liczba segmentów, wynik jest pusty.
- Jeśli długość wynosi 0, zwracanie pojedynczego segmentu określonego przez przesunięcie
- Jeśli długość jest ujemna, należy traktować ją jako drugie przesunięcie i obliczać wstecz od końca ścieżki. Jeśli wartość jest mniejsza niż przesunięcie, powoduje to pusty ciąg.
- Jeśli długość jest większa niż liczba segmentów, zwróć to, co pozostaje w ścieżce.
{url_path.tolower}
/{url_path.toupper}
: przekonwertuj ścieżkę adresu URL na małe lub wielkie litery. Na przykład miejsce docelowe{url_path.tolower}
w adresie URL ponownego zapisywania/przekierowywania w celu/lowercase/ABcDXyZ/EXAMPLE
uzyskania wyników w pliku/lowercase/abcdxyz/example
. Miejsce docelowe{url_path.toupper}
w adresie URL ponownego zapisywania/przekierowywania w celu/ABcDXyZ/example
uzyskania wyników w pliku/ABCDXYZ/EXAMPLE
.
Obsługiwane akcje zestawu reguł
Zmienne serwera są obsługiwane w następujących akcjach zestawu reguł:
- Zachowanie buforowania ciągu zapytania w zastąpieniu konfiguracji trasy
- Modyfikowanie nagłówka żądania
- Modyfikowanie nagłówka odpowiedzi
- Przekierowanie adresu URL
- Ponowne zapisywanie adresu URL