-
Bereitstellen einer Citrix ADC VPX-Instanz
-
Installieren einer Citrix ADC VPX Instanz auf einem Bare-Metal-Server
-
Installieren einer Citrix ADC VPX-Instanz auf Citrix Hypervisor
-
Installieren einer Citrix ADC VPX Instanz in VMware Cloud auf AWS
-
Installieren einer Citrix ADC VPX Instanz auf Microsoft Hyper-V-Servern
-
Installieren einer Citrix ADC VPX-Instanz auf der Linux-KVM-Plattform
-
Bereitstellen der virtuellen Citrix ADC Appliance mit OpenStack
-
Bereitstellen der Citrix ADC Virtual Appliance mit Virtual Machine Manager
-
Konfigurieren virtueller Citrix ADC Appliances für die Verwendung der SR-IOV-Netzwerkschnittstelle
-
Bereitstellen der virtuellen Citrix ADC Appliance mit dem Virsh-Programm
-
Bereitstellen der virtuellen Citrix ADC Appliance mit SR-IOV auf OpenStack
-
Bereitstellen einer Citrix ADC VPX-Instanz auf AWS
-
Bereitstellen einer eigenständigen Citrix ADC VPX-Instanz in AWS
-
Bereitstellen eines hochverfügbaren VPX-Paars mit elastischen IP-Adressen in verschiedenen AWS-Zonen
-
Bereitstellen eines hochverfügbaren VPX-Paars mit privaten IP-Adressen in verschiedenen AWS-Zonen
-
Konfigurieren einer Citrix ADC VPX-Instanz für die Verwendung der SR-IOV-Netzwerkschnittstelle
-
Konfigurieren einer Citrix ADC VPX-Instanz für die Verwendung von Enhanced Networking mit AWS ENA
-
Bereitstellen einer Citrix ADC VPX Instanz in Microsoft Azure
-
Netzwerkarchitektur für Citrix ADC VPX-Instanzen in Microsoft Azure
-
Konfigurieren mehrerer IP-Adressen für eine eigenständige Citrix ADC VPX-Instanz
-
Konfigurieren eines Hochverfügbarkeitssetups mit mehreren IP-Adressen und Netzwerkkarten
-
Konfigurieren einer Citrix ADC VPX-Instanz für beschleunigte Azure-Netzwerke
-
Konfigurieren von HA-INC-Knoten mit der Citrix Hochverfügbarkeitsvorlage mit Azure ILB
-
Konfigurieren von GSLB auf einem Hochverfügbarkeits-Setup mit aktivem Standby-Modus
-
Konfigurieren von Adresspools (IIP) für eine Citrix Gateway Appliance
-
Zusätzliche PowerShell -Skripts für die Azure-Bereitstellung
-
Bereitstellen einer Citrix ADC VPX-Instanz auf der Google Cloud Platform
-
Automatisieren der Bereitstellung und Konfiguration von Citrix ADC
-
Upgrade und Downgrade einer Citrix ADC Appliance
-
Lösungen für Telekommunikationsdienstleister
-
Lastausgleich Control-Ebenenverkehr, der auf Durchmesser-, SIP- und SMPP-Protokollen basiert
-
Authentifizierung, Autorisierung und Auditing des Anwendungsdatenverkehrs
-
Funktionsweise von Authentifizierung, Autorisierung und Auditing
-
Grundkomponenten der Authentifizierungs-, Autorisierungs- und Überwachungskonfiguration
-
On-Premises Citrix Gateway als Identitätsanbieter für Citrix Cloud
-
Konfigurationsunterstützung für das Cookie-Attribut SameSite
-
Authentifizierung, Autorisierung und Auditing-Konfiguration für häufig verwendete Protokolle
-
Beheben von Problemen mit Authentifizierung und Autorisierung
-
-
-
-
Konfigurieren des erweiterten Richtlinienausdrucks: Erste Schritte
-
Erweiterte Richtlinienausdrücke: Arbeiten mit Datumsangaben, Uhrzeiten und Zahlen
-
Erweiterte Richtlinienausdrücke: Analysieren von HTTP-, TCP- und UDP-Daten
-
Erweiterte Richtlinienausdrücke: Analysieren von SSL-Zertifikaten
-
Erweiterte Richtlinienausdrücke: IP- und MAC-Adressen, Durchsatz, VLAN-IDs
-
Erweiterte Richtlinienausdrücke: Stream Analytics-Funktionen
-
Zusammenfassende Beispiele für Standard-Syntaxausdrücke und -richtlinien
-
Tutorialbeispiele für Standard-Syntaxrichtlinien für das Umschreiben
-
Migration von Apache mod_rewrite Regeln auf die Standardsyntax
-
-
-
-
-
Verwalten eines virtuellen Cache-Umleitungsservers
-
Statistiken zum virtuellen Server zur Cache-Umleitung anzeigen
-
Aktivieren oder Deaktivieren eines virtuellen Cache-Umleitungsservers
-
Direkter Richtlinientreffer in den Cache anstelle des Ursprungs
-
Verwalten von Clientverbindungen für einen virtuellen Server
-
Externe TCP-Zustandsprüfung für virtuelle UDP-Server aktivieren
-
-
Ziel-IP-Adresse einer Anforderung in Ursprungs-IP-Adresse übersetzen
-
-
-
Konfigurieren von Citrix ADC als nicht validierenden, sicherheitsbezogene Stub-Resolver
-
Jumbo-Frames-Unterstützung für DNS, um Antworten großer Größen zu verarbeiten
-
Konfigurieren der negativen Zwischenspeicherung von DNS-Einträgen
-
-
GSLB-Entitäten einzeln konfigurieren
-
Anwendungsfall: Bereitstellung einer Domainnamen-basierten Autoscale-Dienstgruppe
-
Anwendungsfall: Bereitstellung einer IP-adressbasierten Autoscale-Service-Gruppe
-
-
Verwalten des Client-Datenverkehrs
-
Konfigurieren von virtuellen Servern ohne Sitzungsaufwand für den Lastenausgleich
-
IP-Adresse und Port eines virtuellen Servers in den Request-Header einfügen
-
Verwenden einer angegebenen Quell-IP für die Backend-Kommunikation
-
Festlegen eines Timeoutwerts für Leerlauf-Clientverbindungen
-
Verwalten des Client-Datenverkehrs auf der Grundlage der Datenverkehrsrate
-
Verwenden eines Quellports aus einem angegebenen Portbereich für die Backend-Kommunikation
-
Konfigurieren der Quell-IP-Persistenz für die Backend-Kommunikation
-
Verwenden von lokalen IPv6-Link-Adressen auf Serverseite eines Lastausgleichs-Setups
-
-
Erweiterte Lastenausgleichseinstellungen
-
Schützen von Anwendungen auf geschützten Servern vor Überlastung des Datenverkehrs
-
Bereinigung von virtuellen Server- und Dienstverbindungen aktivieren
-
Aktivieren oder Deaktivieren der Persistenzsitzung auf TROFS-Diensten
-
Externe TCP-Zustandsprüfung für virtuelle UDP-Server aktivieren
-
Verwalten der Clientverbindung für mehrere Clientanforderungen
-
Standortdetails von der Benutzer-IP-Adresse mit der Geolocation-Datenbank abrufen
-
Verwenden der Quell-IP-Adresse des Clients für die Verbindung zum Server
-
Festlegen eines Grenzwerts für die Anzahl der Clientverbindungen
-
Festlegen eines Grenzwerts für die Anzahl der Anforderungen pro Verbindung zum Server
-
Festlegen eines Schwellenwerts für die an einen Dienst gebundenen Monitore
-
Festlegen eines Timeoutwerts für Leerlauf-Clientverbindungen
-
Festlegen eines Zeitüberschreitungswertes für Serververbindungen im Leerlauf
-
Festlegen eines Grenzwerts für die Bandbreitenauslastung durch Clients
-
Konfigurieren des Lastenausgleichs für häufig verwendete Protokolle
-
Anwendungsfall 3: Konfigurieren des Lastausgleichs im Direktserverrückgabemodus
-
Anwendungsfall 4: Konfigurieren von LINUX-Servern im DSR-Modus
-
Anwendungsfall 5: Konfigurieren des DSR-Modus bei Verwendung von TOS
-
Anwendungsfall 6: Konfigurieren des Lastausgleichs im DSR-Modus für IPv6-Netzwerke über das TOS-Feld
-
Anwendungsfall 7: Konfigurieren des Lastausgleichs im DSR-Modus mit IP over IP
-
Anwendungsfall 8: Lastausgleich im Einarmmodus konfigurieren
-
Anwendungsfall 9: Konfigurieren des Lastausgleichs im Inline-Modus
-
Anwendungsfall 10: Lastausgleich von Intrusion Detection Systemservern
-
Anwendungsfall 11: Isolieren des Netzwerkverkehrs mit Listening-Richtlinien
-
Anwendungsfall 12: Konfigurieren von XenDesktop für den Lastenausgleich
-
Anwendungsfall 13: Konfigurieren von XenApp für den Lastenausgleich
-
Anwendungsfall 14: ShareFile Assistent für den Lastenausgleich von Citrix ShareFile
-
-
-
Richtlinienerweiterungen - Anwendungsfälle
-
SSL-Offload und Beschleunigung
-
Unterstützung für Intel Coleto SSL-Chip-basierte Plattformen
-
Unterstützung für Gemalto SafeNet Network Hardwaresicherheitsmodul
-
-
-
-
Konfigurieren eines CloudBridge Connector-Tunnels zwischen zwei Rechenzentren
-
Konfigurieren von CloudBridge Connector zwischen Datacenter und AWS Cloud
-
Konfigurieren eines CloudBridge-Connector-Tunnels zwischen einem Datacenter und Azure Cloud
-
Konfigurieren des CloudBridge Connector-Tunnels zwischen Datacenter und SoftLayer Enterprise Cloud
-
-
Punkte, die für ein Hochverfügbarkeits-Setup berücksichtigt werden müssen
-
Synchronisieren von Konfigurationsdateien in einem Hochverfügbarkeitssetup
-
Beschränken des Hochverfügbarkeitssynchronisierungsverkehrs auf ein VLAN
-
Konfigurieren von Hochverfügbarkeitsknoten in verschiedenen Subnetzen
-
Beschränken von Failovers durch Routenmonitore im Nicht-INC-Modus
-
Verwalten von Heartbeat-Nachrichten mit hoher Verfügbarkeit auf einer Citrix ADC Appliance
-
Entfernen und Ersetzen eines Citrix ADC in einem Hochverfügbarkeit-Setup
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已动态机器翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
This content has been machine translated dynamically.
This content has been machine translated dynamically.
This content has been machine translated dynamically.
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.
Este artigo foi traduzido automaticamente.
这篇文章已经过机器翻译.放弃
Translation failed!
Richtlinienerweiterungen - Anwendungsfälle
Bestimmte Kundenanwendungen haben Anforderungen, die mit bestehenden Richtlinien und Ausdrücken nicht berücksichtigt werden können. Mit der Richtlinienerweiterung können Kunden benutzerdefinierte Funktionen zu ihren Anwendungen hinzufügen, um ihre Anforderungen zu erfüllen.
Die folgenden Anwendungsfälle veranschaulichen das Hinzufügen neuer Funktionen mithilfe der Richtlinienerweiterungsfunktion auf der Citrix ADC Appliance.
- Fall 1: Benutzerdefinierter Hash
- Fall 2: Doppelschrägstriche in URLs reduzieren
- Fall 3: Kopfzeilen kombinieren
Fall 1: Benutzerdefinierter Hash
Die CUSTOM_HASH Funktion bietet einen Mechanismus, um jede Art von Hash-Wert in die an den Client gesendeten Antworten einzufügen. In diesem Anwendungsfall wird die Hash-Funktion verwendet, um den Hash der Abfragezeichenfolge für eine Rewrite HTTP-Anforderung zu berechnen und einen HTTP-Header namens CUSTOM_HASH mit dem berechneten Wert einzufügen. Die CUSTOM_HASH Funktion implementiert den DJB2-Hash-Algorithmus.
Beispielverwendung von CUSTOM_HASH:
> add rewrite action test_custom_hash insert_http_header "CUSTOM_HASH" "HTTP.REQ.URL.QUERY.CUSTOM_HASH"
Beispieldefinition von CUSTOM_HASH ():
-- Extension function to compute custom hash on the text
-- Uses the djb2 string hash algorithm
function NSTEXT:CUSTOM_HASH() : NSTEXT
local hash = 5381
local len = string.len(self)
for i = 1, len do
hash = bit32.bxor((hash * 33), string.byte(self, i))
end
return tostring(hash)
end
Zeilenweise Beschreibung der obigen Probe:
function NSTEXT:CUSTOM_HASH() : NSTEXT
Defines the CUSTOM_HASH() function, with text input and a text return value.
local hash = 5381
local len = string.len(self)
Declares two local variables:
- hash. Accumulates the compute hash value and is seeded with the number 5381
- len. Sets to the length of the self input text string, using the built-in string.len() function.
for i = 1, len do
hash = bit32.bxor((hash * 33), string.byte(self, i))
end
Iterates through each byte of the input string and adds the byte to the hash. It uses the built-in string.byte() function to get the byte and the built-in bit32.bxor() function to compute the XOR of the existing hash value (multiplied by 33) and the byte.
return tostring(hash)
Calls the built-in tostring() function to convert the numeric hash value to a string and returns the string as the value of the function.
Fall 2: Doppelschrägstriche in URLs reduzieren
Durch das Reduzieren doppelter Schrägstriche in URLs wird die Rendering-Zeit der Website verbessert, da Browser die URLs mit einem Schrägstrich effizienter analysieren. Die einzelnen Schrägstriche URLs auch zur Aufrechterhaltung der Kompatibilität mit Anwendungen, die keine doppelten Schrägstriche akzeptieren. Mit der Richtlinienerweiterung können Kunden eine Funktion hinzufügen, die die doppelten Schrägstriche durch einzelne Schrägstriche in den URLs ersetzt. Das folgende Beispiel veranschaulicht das Hinzufügen einer Richtlinienerweiterungsfunktion, die Doppelschrägstriche in URLs reduziert.
Beispieldefinition von COLLAPSE_DOUBLE_SLASHES ():
-- Collapse double slashes in URL to a single slash and return the result
function NSTEXT:COLLAPSE_DOUBLE_SLASHES() : NSTEXT
local result = string.gsub(self, "//", "/")
return result
end
Zeilenweise Beschreibung der obigen Probe:
function NSTEXT:COLLAPSE_DOUBLE_SLASHES() : NSTEXT
Declares the COLLAPSE_DOUBLE_SLASHES() function with text input and return.
local result = string.gsub(self, "//", "/")
Declares a local variable named result and uses the built-in string.gsub() function to replace all double slashes with single slashes in the self input text.
The second parameter of string.gsub() is actually a regular expression pattern, although here a simple string is used for the pattern.
return result
Returns the resulting string.
Fall 3: Kopfzeilen kombinieren
Bestimmte Kundenanwendungen können nicht mehrere Header in einer Anforderung verarbeiten. Auch das Parsen von doppelten Headern mit gleichen Header-Werten oder mehreren Headern mit demselben Namen, aber unterschiedlichen Werten in einer Anforderung verbraucht Zeit und Netzwerkressourcen. Die Richtlinienerweiterungsfunktion ermöglicht es Kunden, eine Funktion hinzuzufügen, um diese Header zu einzelnen Headern zu kombinieren, wobei ein Wert, der die ursprünglichen Werte kombiniert. Beispiel: Kombinieren Sie die Werte der Header H1 und H2.
Ursprüngliche Anfrage:
GET /combine_headers HTTP/1.1
User-Agent: amigo unit test
Host: myhost
H2: h2val1
H1: abcd
Accept: \*/\*
H2: h2val2
Content-Length: 0
H2: h2val3
H1: 1234
Geänderte Anfrage:
GET /combine_headers HTTP/1.1
User-Agent: amigo unit test
Host: myhost
H2: h2val1, h2val2, h2val3
H1: abcd, 1234
Accept: \*/\*
Content-Length: 0
Im Allgemeinen wird diese Art von Anforderungsänderung mit der Funktion “Umschreiben” durchgeführt, wobei Richtlinienausdrücke verwendet werden, um den Teil der zu ändernden Anforderung (das Ziel) und die durchzuführende Änderung (der Zeichenfolgengenerator-Ausdruck) zu beschreiben. Richtlinienausdrücke können jedoch nicht über eine beliebige Anzahl von Headern iterieren.
Die Lösung dieses Problems erfordert eine Erweiterung der Richtlinienfazilität. Um dies zu tun, werden wir eine Erweiterungsfunktion definieren, genannt COMBINE_HEADERS. Mit dieser Funktion können wir die folgende Rewrite-Aktion einrichten:
> add rewrite action combine_headers_act replace 'HTTP.REQ.FULL_HEADER.AFTER_STR("HTTP/1.1rn")' 'HTTP.REQ.FULL_HEADER.AFTER_STR("HTTP/1.1rn").COMBINE_HEADERS'
Hier ist das Rewrite-Ziel HTTP.REQ.FULL_HEADER.AFTER_STR (“HTTP/1.1rn”). Die AFTER_STR (“HTTP/1.1rn”) ist erforderlich, da FULL_HEADER die erste Zeile der HTTP-Anfrage enthält (z.B. GET /combine_headers HTTP/1.1).
Der String-Builder-Ausdruck ist HTTP.REQ.FULL_HEADER.AFTER_STR(“HTTP/1.1rn”).COMBINE_HEADERS, wobei die Header (ohne die erste Zeile) in die Erweiterungsfunktion COMBINE_HEADERS eingespeist werden, die die Werte für Header kombiniert und zurückgibt.
Beispieldefinition von COMBINE_HEADERS ():
-- Extension function to combine multiple headers of the same name into one header.
function NSTEXT:COMBINE_HEADERS(): NSTEXT
local headers = {} -- headers
local combined_headers = {} -- headers with final combined values
-- Iterate over each header (format "name:valuer\r\n")
-- and build a list of values for each unique header name.
for name, value in string.gmatch(self, "([^:]+):([^\r\n]*)\r\n") do
if headers[name] then
local next_value_index = #(headers[name]) + 1
headers[name][next_value_index] = value
else
headers[name] = {name .. ":" .. value}
end
end
-- iterate over the headers and concat the values with separator ","
for name, values in pairs(headers) do
local next_header_index = #combined_headers + 1
combined_headers[next_header_index] = table.concat(values, ",")
end
-- Construct the result headers using table.concat()
local result_str = table.concat(combined_headers, "\r\n") .. "\r\n\r\n"
return result_str
end
Zeilenweise Beschreibung der obigen Probe:
function NSTEXT:COMBINE_HEADERS(): NSTEXT
Defines the COMBINE_HEADERS extension function, with the text input into the function from the policy expression and a text return type to the policy expression.
local headers = {} -- headers
local combined_headers = {} -- headers with final combined values
Declares local variables headers and combined_headers and initialize these variables to empty tables. headers will be a table of arrays of strings, where each array holds one or more values for a header. combined_headers will be an array of strings, where each array element is a header with its combined values.
for name, value in string.gmatch(self, "([^:]+):([^\r\n]*)\r\n") do
. . .
end
Diese generische for-Schleife analysiert jeden Header in der Eingabe. Der Iterator ist die integrierte String.gmatch () Funktion. Diese Funktion verwendet zwei Parameter: eine zu suchende Zeichenfolge und ein Muster, mit dem Teile der Zeichenfolge übereinstimmen. Die zu suchende Zeichenfolge wird durch den impliziten Selbstparameter bereitgestellt, der der Text für die Header ist, die in die Funktion eingegeben werden.
Das Muster wird mit einem regulären Ausdruck ausgedrückt (Regex für kurz). Diese Regex entspricht dem Headernamen und -wert für jeden Header, den der HTTP-Standard als name:value\r\n definiert. Die Klammern in der Regex geben die passenden Teile an, die extrahiert werden sollen. Daher lautet das Regex-Schema (Match-Name):(Match-Wert)\r\n. Das Match-Name-Muster muss mit allen Zeichen außer dem Doppelpunkt übereinstimmen. Dies wird geschrieben: [^:]+([^:] ist ein beliebiges Zeichen außer : und + ist eine oder mehrere Wiederholungen). In ähnlicher Weise muss das Match-Wert-Muster mit allen Zeichen außer dem \r\n übereinstimmen, so dass es geschrieben wird: [^\r\n]*([^\r\n] entspricht jedem Zeichen außer \r und \n und * Null oder mehr Wiederholungen sind). Dies macht die komplette Regex ([^:]+):([^\r\n]*)\r\n.
Die for -Anweisung verwendet eine Mehrfachzuweisung, um Namen und Wert auf die beiden Übereinstimmungen festzulegen, die vom string.gmatch () Iterator zurückgegeben werden. Diese werden implizit als lokale Variablen im Körper der for-Schleife deklariert.
if headers[name] then
local next_value_index = #(headers[name]) + 1
headers[name][next_value_index] = value
else
headers[name] = {name .. ":" .. value}
end
Diese Anweisungen innerhalb der for-Schleife setzen die Headernamen und -werte in die Header-Tabelle. Wenn ein Headername zum ersten Mal analysiert wird (z. B. H2: h2val1 in der Beispieleingabe), gibt es keinen Headereintrag für den Namen und Header[Name]ist nil.
Da nil als falsch behandelt wird, wird die else-Klausel ausgeführt. Dies setzt den Header-Eintrag für name auf ein Array mit einem Zeichenfolgenwert name:value.
Hinweis: Der Array-Konstruktor in der else Schleife entspricht {[1] = name.. “:”.. value}, der das erste Element des Arrays setzt.) Für den ersten H2-Header setzt er Header[“H2”]= {“h2:h2val1”}.
Bei nachfolgenden Instanzen eines Headers (z. B. H2: h2val2 in der Beispieleingabe). header[Name] ist nicht nil, daher wird die then-Klausel ausgeführt. Dies bestimmt den nächsten verfügbaren Index im Array-Wert für headers[Name]und setzt den Header-Wert in diesen Index. Für den zweiten H2-Header setzt er headers[“H2”]= {“H2:h2val1”, “h2val2”}.
for name, values in pairs(headers) do
local next_header_index = #combined_headers + 1
combined_headers[next_header_index] = table.concat(values, ",")
end
Nachdem die ursprünglichen Header analysiert und die Header-Tabelle ausgefüllt wurde, erstellt diese Schleife das kombined_headers-Array. Es verwendet die pairs() Funktion als for-Schleifen-Iterator.
Jeder Aufruf von pairs() gibt den Namen und den Wert des nächsten Eintrags in der Header-Tabelle zurück.
Die nächste Zeile bestimmt den nächsten verfügbaren Index im array combined_headers, und die nächste Zeile setzt dieses Array-Element auf den kombinierten Header. Es verwendet die integrierte Funktion table.concat(), die als Argumente ein Array von Strings und eine Zeichenfolge als Trennzeichen verwendet, und gibt eine Zeichenfolge zurück, die die Verkettung der Array-Strings ist, getrennt durch das Trennzeichen.
Für Werte = {“H2:h2val1”, “h2val2”} ergibt dies beispielsweise “H2:h2val1, h2val2”
local result_str = table.concat(combined_headers, "\r\n") .. "\r\n\r\n"
Nachdem das Array combined_headers erstellt wurde, verkettet es die Elemente zu einer Zeichenfolge und fügt einen doppelten \r\n hinzu, der die HTTP-Header beendet.
return result_str
Gibt eine Zeichenfolge als Ergebnis der Erweiterungsfunktion COMBINE_HEADERS zurück.
Teilen
Teilen
This Preview product documentation is Citrix Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Citrix Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Citrix product purchase decisions.
If you do not agree, select Do Not Agree to exit.