Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: ✔️ Front Door Standard ✔️ Front Door Premium
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 tylko 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 zmiennej serwera w warunku dopasowania, użyj adresu gniazda. |
client_ip |
Adres IP klienta, który złożył oryginalne żądanie. Gdy w żądaniu znajduje się nagłówek X-Forwarded-For, adres IP klienta zostaje wybrany z tego nagłówka.Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj adresu zdalnego i skonfiguruj Operator do Dopasowania IP lub Braku Dopasowania 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 wnioskodawcy przez kod kraju/regionu. Aby uzyskać dostęp do tej zmiennej serwera w warunku dopasowania, użyj Remote address i skonfiguruj Operator do Geo Match lub Geo Not Match. |
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.1lub 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 następują po ? w żądanym adresie URL.Na przykład w żądaniu http://contoso.com:8080/article.aspx?id=123&title=fabrikam, wartość query_string 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, wartość request_uri 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 Server port. |
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 ukośnika na początku. Na przykład w żądaniu http://contoso.com:8080/article.aspx?id=123&title=fabrikam, wartość url_path to article.aspx. Usługa Azure Front Door obsługuje dynamiczne przechwytywanie ścieżki adresu URL przy użyciu zmiennej serwera {url_path:seg#} oraz konwertuje ścieżkę adresu URL na małe lub wielkie litery przy użyciu zmiennych serwera {url_path.tolower} 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. |
http_req_header_<headername> |
Przechwytuje wartość nagłówka żądania. Na przykład dla nagłówka żądania Device: Desktop, zmienna jest http_req_header_Device, wartość tej zmiennej to Desktop. "Nazwa nagłówka w składni zmiennej obsługuje znaki alfanumeryczne oraz myślnik (a-z, A-Z, 0-9 i „-”)." |
http_req_arg_<querystringkeyname> |
Przechwytuje wartość z pary klucz ciągu zapytania. Na przykład w żądaniu http://contoso.com:8080/article.aspx?id=123&title=fabrikamzmienna jest http_req_header_id, wartość tej zmiennej to 123. Klucz ciągu zapytania w składni zmiennej obsługuje znaki alfanumeryczne oraz łącznik (a-z, A-Z, 0-9 i "-"). |
http_resp_header_<headername> |
Przechwytuje wartość nagłówka odpowiedzi ze źródła. Na przykład dla nagłówka odpowiedzi Access-Control-Allow-Origin https://learn.microsoft.com, zmienna 'http_req_header_Access-Control-Allow-Origin' ma wartość https://learn.microsoft.com. "Nazwa nagłówka w składni zmiennej obsługuje znaki alfanumeryczne oraz myślnik (a-z, A-Z, 0-9 i „-”)." |
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, to token{client_ip}byłby obliczany na111.222.333.444wartość. -
{variable:offset}: uwzględnij zmienną serwera po określonym przesunięciu aż do końca zmiennej. Przesunięcie jest oparte od zera. Jeśli na przykład adres IP klienta to111.222.333.444, to token{client_ip:3}byłby obliczany na.222.333.444wartość. -
{variable:offset:length}: Uwzględnij zmienną serwera od określonego przesunięcia do określonej długości. Przesunięcie jest oparte od zera. Na przykład, gdy zmienna var ma wartość "AppId=01f592979c584d0f9d679db3e6a3e5e",- Przesunięcia w zakresie, brak długości:
{var:0}=AppId=01f592979c584d0f9d679db3e66a3e5e,{var:6}=01f592979c584d0f9d679db3e66a3e5e,{var:-8}=e66a3e5e - Przesunięcia poza zakresem, brak 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ści poza zakresem:
{var:0:100}=AppId=01f592979c584d0f9d679db3e66a3e5e,{var:5:100}==01f592979c584d0f9d679db3e66a3e5e,{var:0:-48}= null,{var:4:-48}= null - Aby eksperymentować z tym, jak działa {variable:offset:length}, otwórz terminal bash systemu Linux lub użyj terminalu bash w usłudze Azure Cloud Shell. Wprowadź poniższy przykład w terminalu i sprawdź dane wyjściowe, aby zrozumieć, jak działa wyodrębnianie podciągów.
- Przesunięcia w zakresie, brak długości:
variable=helloworld123; echo ${variable:5} #Output = world123
variable=helloworld123; echo ${variable:0:5} #Output = hello
Uwaga
W powłoce Bash wymagana jest spacja przed liczbą ujemną w rozwinięciu parametru, aby uniknąć błędów składni.
variable=helloworld123; echo ${variable: -3:3} #Output=123
variable=helloworld123; echo ${variable:5: -3} #Output = world
{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 podciągów{url_path:seg1:3}. Na przykład w przypadku wzorca źródłowego/id/12345/defaulti adresu URL miejsca docelowego, gdzie następuje ponowne zapisanie/{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, po przepisaniu adresu URL miejsce docelowe/{url_path:seg1:3}/homestaje się/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 pobrania, w tym również segmentu na indeksie równym przesunięciu.
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, uchwyć segment na indeksie równym przesunięciu.
- Po uwzględnieniu długości, zapisuje segmenty od 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 na 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óć jako wynik 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 przekształceniu/przekierowaniu adresu URL/lowercase/ABcDXyZ/EXAMPLEskutkuje/lowercase/abcdxyz/example. Miejsce docelowe{url_path.toupper}w przepisywaniu/przekierowaniu adresów URL dla/ABcDXyZ/exampleskutkuje/ABCDXYZ/EXAMPLE.
Obsługiwane akcje zestawu reguł
Zmienne serwera są obsługiwane w następujących działaniach zestawu reguł:
- Zachowanie buforowania ciągu zapytania przy zastępowaniu konfiguracji trasy w Route
- Modyfikowanie nagłówka żądania
- Modyfikowanie nagłówka odpowiedzi
- Przekierowanie adresu URL
- Ponowne zapisywanie adresu URL
Następne kroki
- Dowiedz się więcej o zestawie reguł usługi Azure Front Door.
- Dowiedz się więcej o warunkach dopasowania reguł.
- Dowiedz się więcej o akcjach zestawu reguł.