Freigeben über


Servervariablen in Azure Front Door-Regelsätzen

Gilt für: ✔️ Front Door Standard ✔️ Front Door Premium

Regelsatz-Servervariablen ermöglichen den Zugriff auf strukturierte Informationen über die Anforderung. wenn Sie Regelsätze verwenden.

Wenn Sie Vergleichsbedingungen für Regelsätze verwenden, sind Servervariablen als Vergleichsbedingungen verfügbar, sodass Sie Anforderungen mit bestimmten Eigenschaften identifizieren können.

Wenn Sie Regelsatzaktionen verwenden, können Sie Servervariablen verwenden, um die Anforderungs- und Antwortheader dynamisch zu ändern und URLs, Pfade und Abfragezeichenfolgen neu zu schreiben, z. B. wenn eine neue Seite geladen wird oder ein Formular gepostet wird.

Hinweis

Servervariablen sind nur mit Den Stufen Azure Front Door Standard und Premium verfügbar.

Unterstützte Variablen

Variablenname BESCHREIBUNG
socket_ip Die IP-Adresse der direkten Verbindung mit dem Azure Front Door-Edge. Wenn der Client einen HTTP-Proxy oder einen Lastenausgleich zum Senden der Anforderung verwendet hat, ist der Wert von socket_ip die IP-Adresse des Proxys oder Lastenausgleichs.
Um in einer Vergleichsbedingung auf diese Servervariable zuzugreifen, verwenden Sie Socketadresse.
client_ip Die IP-Adresse des Clients, der die ursprüngliche Anforderung gestellt hat. Wenn in der Anforderung ein X-Forwarded-For-Header vorhanden ist, wird die Client-IP-Adresse aus dem Header ausgewählt.
Um in einer Vergleichsbedingung auf diese Servervariable zuzugreifen, verwenden Sie Remoteadresse, und konfigurieren Sie den Operator als IP-Übereinstimmung oder Keine IP-Übereinstimmung.
client_port Der IP-Port des Clients, der die Anforderung gestellt hat.
Um in einer Vergleichsbedingung auf diese Servervariable zuzugreifen, verwenden Sie Clientport.
hostname Der Hostname in der Anforderung des Client.
Um in einer Vergleichsbedingung auf diese Servervariable zuzugreifen, verwenden Sie Hostname.
geo_country Gibt das Herkunftsland/die Herkunftsregion der anfordernden Person über den jeweiligen Länder-/Regionscode an.
Um in einer Vergleichsbedingung auf diese Servervariable zuzugreifen, verwenden Sie Remoteadresse, und konfigurieren Sie den Operator als Geografische Übereinstimmung oder Keine geografische Übereinstimmung.
http_method Die Methode, die für die URL-Anforderung verwendet wird, z. B. GET oder POST.
Um in einer Vergleichsbedingung auf diese Servervariable zuzugreifen, verwenden Sie Anforderungsmethode.
http_version Das Anforderungsprotokoll. Normalerweise HTTP/1.0 , HTTP/1.1 oder HTTP/2.0.
Um in einer Vergleichsbedingung auf diese Servervariable zuzugreifen, verwenden Sie HTTP-Version.
query_string Die Liste der Variablen/Wert-Paare nach dem ? in der angeforderten URL.
In der Anforderung http://contoso.com:8080/article.aspx?id=123&title=fabrikam ist beispielsweise der query_string Wert id=123&title=fabrikam.
Um in einer Vergleichsbedingung auf diese Servervariable zuzugreifen, verwenden Sie Abfragezeichenfolge.
request_scheme Das Anforderungsschema: http oder https.
Um in einer Vergleichsbedingung auf diese Servervariable zuzugreifen, verwenden Sie Anforderungsprotokoll.
request_uri Der vollständige ursprüngliche Anforderungs-URI (mit Argumenten).
In der Anforderung http://contoso.com:8080/article.aspx?id=123&title=fabrikam ist beispielsweise der request_uri Wert http://contoso.com:8080/article.aspx?id=123&title=fabrikam.
Um in einer Vergleichsbedingung auf diese Servervariable zuzugreifen, verwenden Sie Anforderungs-URL.
ssl_protocol Das Protokoll einer hergestellten TLS-Verbindung.
Um in einer Vergleichsbedingung auf diese Servervariable zuzugreifen, verwenden Sie SSL-Protokoll.
server_port Der Port des Servers, der eine Anforderung akzeptiert hat.
Um in einer Vergleichsbedingung auf diese Servervariable zuzugreifen, verwenden Sie Serverport.
url_path Identifiziert die bestimmte Ressource auf dem Host, auf die der Webclient zugreifen möchte. Dies ist der Teil des Anforderungs-URI ohne die Argumente oder den vorangestellten Schrägstrich.
In der Anforderung http://contoso.com:8080/article.aspx?id=123&title=fabrikam ist beispielsweise der url_path Wert article.aspx.
Azure Front Door unterstützt die dynamische Erfassung des URL-Pfads mit {url_path:seg#} Servervariable und konvertiert den URL-Pfad in Klein- oder Großbuchstaben mit {url_path.tolower} oder {url_path.toupper}. Weitere Informationen finden Sie unter Servervariablenformat und Servervariablen.
Um in einer Vergleichsbedingung auf diese Servervariable zuzugreifen, verwenden Sie die Bedingung Anforderungspfad.
http_req_header_<headername> Erfasst den Wert eines Anforderungsheaders. Für den Anforderungsheader „Device: Desktop“ ist die Variable beispielsweise „http_req_header_Device“, und der Wert dieser Variablen ist „Desktop“.
Der Headername in der Variablensyntax unterstützt alphanumerische Zeichen und Bindestriche (a-z, A-Z, 0-9 und "-").
http_req_arg_<querystringkeyname> Erfasst den Wert aus einem Schlüssel-Wert-Paar einer Abfragezeichenfolge. Z. B. in der Anforderung http://contoso.com:8080/article.aspx?id=123&title=fabrikamist die Variable http_req_header_id, der Wert dieser Variablen ist 123.
Der Abfragezeichenfolgenschlüssel in der Variablensyntax unterstützt alphanumerische und Bindestriche (a-z, A-Z, 0-9 und "-").
http_resp_header_<headername> Erfasst den Wert eines Antwortheaders vom Ursprung. Für den Antwortheader „Access-Control-Allow-Origin https://learn.microsoft.com“ ist die Variable beispielsweise „http_req_header_ header Access-Control-Allow-Origin“, und der Wert dieser Variablen ist https://learn.microsoft.com.
Der Headername in der Variablensyntax unterstützt alphanumerische Zeichen und Bindestriche (a-z, A-Z, 0-9 und "-").

Format der Servervariablen

Wenn Sie mit Regelsatzaktionen arbeiten, geben Sie Servervariablen in den folgenden Formaten an:

  • {variable}: Schließt die gesamte Servervariable ein. Wenn z. B. die Client-IP-Adresse 111.222.333.444 lautet, würde das {client_ip}-Token als 111.222.333.444 ausgewertet werden.
  • {variable:offset}: Schließen Sie die Servervariable nach einem bestimmten Offset bis zum Ende der Variablen ein. Der Offset ist NULL basiert. Wenn z. B. die Client-IP-Adresse 111.222.333.444 lautet, würde das {client_ip:3}-Token als .222.333.444 ausgewertet werden.
  • {variable:offset:length}: Schließt die Servervariable nach einem bestimmten Offset bis zur angegebenen Länge ein. Der Offset ist NULL basiert. Beispiel: Wenn die Variable „var“ den Wert „AppId=01f592979c584d0f9d679db3e66a3e5e“ aufweist,
    • Offsets innerhalb des Bereichs, keine Längen: {var:0} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:6} = 01f592979c584d0f9d679db3e66a3e5e, {var:-8} = e66a3e5e
    • Offsets außerhalb des Bereichs, keine Längen: {var:-128} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:128} = null
    • Offsets und Längen innerhalb des Bereichs: {var:0:5} = AppId, {var:7:7} = 1f59297, {var:7:-7} = 1f592979c584d0f9d679db3e
    • Null-Längen: {var:0:0} = null, {var:4:0} = null
    • Offsets innerhalb des Bereichs und Längen außerhalb des Bereichs: {var:0:100} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:5:100} = =01f592979c584d0f9d679db3e66a3e5e, {var:0:-48} = null, {var:4:-48} = null
    • Um zu experimentieren, wie {variable:offset:length} funktioniert, öffnen Sie ein Linux-Bash-Terminal, oder verwenden Sie bash-Terminal in Azure Cloud Shell. Geben Sie das folgende Beispiel in das Terminal ein, und untersuchen Sie die Ausgabe, um zu verstehen, wie sich die Teilzeichenfolgenextraktion verhält.
variable=helloworld123; echo ${variable:5} #Output = world123
variable=helloworld123; echo ${variable:0:5}  #Output = hello

Hinweis

In Bash ist ein Leerzeichen erforderlich, bevor eine negative Zahl in der Parametererweiterung vorhanden ist, um Syntaxfehler zu vermeiden.

variable=helloworld123; echo ${variable: -3:3} #Output=123 
variable=helloworld123; echo ${variable:5: -3} #Output = world
  • {url_path:seg#}: Ermöglichen Sie Benutzern das Erfassen und Verwenden des gewünschten URL-Pfadsegments in URL-Umleitung, URL-Umschreibung oder einer sinnvollen Aktion. Der Benutzer kann auch mehrere Segmente erfassen, indem er dieselbe Formatvorlage wie die Teilzeichenfolgenerfassung {url_path:seg1:3} verwendet. Beispielsweise lautet für ein Quellmuster /id/12345/default und ein URL-Rewrite-Ziel /{url_path:seg1}/home der erwartete URL-Pfad nach dem Rewrite /12345/home. Für eine Mehrsegment-Erfassung führt ein URL-Umschreibungsziel /id/12345/default/location/test zu /{url_path:seg1:3}/home, wenn das Quellmuster /12345/default/location/home lautet. Die Segmenterfassung enthält den Standortpfad. Wenn die Route also lautet /match/*, stimmt Segment 0 überein.

    Offset entspricht dem Index des Startsegments, und die Länge bezieht sich auf die Anzahl der zu erfassenden Segmente, einschließlich des Indexes = Offset.

    Wenn Offset und Länge positiv sind, gilt die folgende Logik:

    • Wenn die Länge nicht enthalten ist, erfassen Sie das Segment bei Index = Offset.
    • Wenn die Länge enthalten ist, erfassen Sie Segmente von Index = Offset bis Index = Offset + Länge.

    Die folgenden Sonderfälle werden ebenfalls behandelt:

    • Wenn Offset negativ ist, zählen Sie rückwärts vom Ende des Pfads, um das Startsegment abzurufen.
    • Wenn Offset ein negativer Wert größer oder gleich der Anzahl der Segmente ist, wird auf 0 festgelegt.
    • Wenn der Offset größer als die Anzahl der Segmente ist, ist das Ergebnis leer.
    • Wenn die Länge 0 ist, wird das einzelne Segment zurückgegeben, das durch Offset angegeben wird
    • Wenn die Länge negativ ist, behandeln Sie sie als zweiten Offset und berechnen Sie rückwärts vom Ende des Pfads. Wenn der Wert kleiner als Offset ist, führt er zu einer leeren Zeichenfolge.
    • Wenn die Länge größer als die Anzahl der Segmente ist, geben Sie zurück, was im Pfad verbleibt.
  • {url_path.tolower} / {url_path.toupper}: Wandeln Sie den URL-Pfad in Klein- oder Großbuchstaben um. Beispielsweise führt ein Ziel {url_path.tolower} in der URL-Umschreibung/Umleitung für /lowercase/ABcDXyZ/EXAMPLE zu /lowercase/abcdxyz/example. Ein Ziel {url_path.toupper} in der URL-Umschreibung/Umleitung für /ABcDXyZ/example führt zu /ABCDXYZ/EXAMPLE.

Unterstützte Regelsatzaktionen

Servervariablen werden für die folgenden Regelsatzaktionen unterstützt:

Nächste Schritte