-
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
-
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!
Funktionen
Funktionen sind ein grundlegender Baustein der Programmierung — sie sind eine bequeme und leistungsfähige Möglichkeit, Anweisungen zu gruppieren, die eine Aufgabe ausführen. Sie sind die Schnittstelle zwischen der Citrix ADC Appliance und dem Erweiterungscode. Für Richtlinien definieren Sie Richtlinienerweiterungsfunktionen. Bei Protokollen implementieren Sie Callback-Funktionen für das Protokollverhalten. Funktionen bestehen aus Funktionsdefinitionen, die angeben, welche Werte in und aus der Funktion übergeben werden und welche Anweisungen für die Funktion ausgeführt werden, und Funktionsaufrufe, die Funktionen mit bestimmten Eingabedaten ausführen und Ergebnisse aus der Funktion erhalten.
Callback-Funktionen des Protokollverhaltens
Das TCP-Clientverhalten besteht aus einer Callback-Funktion (on_data), die TCP-Client-Datenstream-Ereignisse verarbeitet. Um Message Based Load Balancing (MBLB) für ein TCP-basiertes Protokoll zu implementieren, können Sie Code für diese Callback-Funktion hinzufügen, um den TCP-Datenstrom vom Client zu verarbeiten und den Bytestream in Protokollmeldungen zu analysieren.
Die Callback-Funktionen in einem Verhalten werden mit einem Kontext aufgerufen, der der Verarbeitungsmodulstatus ist. Der Kontext ist die Instanz des Verarbeitungsmoduls. Beispielsweise werden die TCP-Clientverhalten Callbacks mit unterschiedlichen Kontexten für verschiedene Client-TCP-Verbindungen aufgerufen.
Zusätzlich zum Kontext können die Verhaltensrückrufe andere Argumente haben. Normalerweise werden die restlichen Argumente als Payload übergeben, was die Sammlung aller Argumente ist. So können die programmierbaren Verarbeitungsmodulinstanzen als eine Kombination aus Instanzstatus plus Ereignisrückruffunktionen gesehen werden, dh dem Kontext plus Verhalten. Und der Verkehr fließt durch die Pipeline als Ereignisnutzlast.
Prototyp der TCP-Client-Callback-Funktion:
Funktions-Client on_data (ctxt, payload)
//.code
Ende
Wobei:
- ctxt - TCP-Clientverarbeitungskontext
- Nutzlast — Ereignisnutzlast
- payload.data - Empfangene TCP-Daten, verfügbar als Bytestrom
Richtlinienerweiterungsfunktionen
Da die NetScaler Richtlinienausdruckssprache stark typisiert ist, muss die Definition einer Erweiterungsfunktion die Typen ihrer Eingaben und ihren Rückgabewert angeben. Die Lua-Funktionsdefinition wurde um folgende Typen erweitert:
function self-type:function-name(parameter1: parameter1-type, etc.): return-type
statements
end
where,
the types are NSTEXT, NSNUM, NSBOOL, or NSDOUBLE.
Selbsttyp ist der Typ des impliziten Selbstparameters, der an die Funktion übergeben wird. Wenn die Erweiterungsfunktion in einem Citrix ADC Richtlinienausdruck verwendet wird, ist dies der Wert, der vom Ausdruck links neben der Funktion generiert wird. Eine andere Möglichkeit, dies anzuzeigen, besteht darin, dass die Funktion diesen Typ in der Citrix ADC Richtliniensprache erweitert.
Die Parametertypen sind die Typen jedes Parameters, der im Aufruf der Erweiterungsfunktion im Richtlinienausdruck angegeben wird. Eine Erweiterungsfunktion kann null oder mehr Parameter haben.
return-type ist der Typ des Wertes, der durch den Aufruf der Erweiterungsfunktion zurückgegeben wird. Es ist die Eingabe für den Teil des Richtlinienausdrucks, falls vorhanden, rechts von der Funktion, oder andernfalls ist der Wert des Ausdrucksergebnisses.
Beispiel:
function NSTEXT:COMBINE_HEADERS() : NSTEXT
Verwendung der Erweiterungsfunktion in einer Richtlinienausdrücke:
HTTP.REQ.FULL_HEADER.AFTER_STR("HTTP/1.1rn").COMBINE_HEADERS()
Hier ist der self Parameter das Ergebnis von HTTP.REQ.FULL_HEADER.AFTER_STR (“HTTP/1.1rn”), was ein Textwert ist. Das Ergebnis des COMBINE_HEADERS () -Aufrufs ist Text, und da sich nichts rechts neben diesem Aufruf befindet, ist das Ergebnis des gesamten Ausdrucks Text.
Lokale Funktionsdefinition
Neben Erweiterungsfunktionen können keine globalen Funktionen in einer Erweiterungsdatei definiert werden. Aber lokale Funktionen können innerhalb von Erweiterungsfunktionen mit der normalen Lua-Funktionsanweisung definiert werden. Dies deklariert den Namen der Funktion und die Namen ihrer Parameter (auch als Argumente bezeichnet), und wie alle Deklarationen in Lua werden keine Typen angegeben. Die Syntax dafür ist:
local function function-name(parameter1-name, parameter2-name, etc.)
statements
end
Die Funktions- und Parameternamen sind alle Bezeichner. (Der Funktionsname ist eigentlich eine Variable und die Funktionsanweisung ist Abkürzung für lokale Funktionsname = Funktion (Parameter1 usw.), aber Sie müssen diese Subtilität nicht verstehen, um Funktionen zu verwenden.)
Beachten Sie, dass usw. hier für die Fortsetzung des Musters von Parameternamen anstelle des üblichen… verwendet wird. Dies liegt daran, dass… selbst tatsächlich eine Variablen-Parameterliste bedeutet, die hier nicht diskutiert wird.
Funktionskörper und Rücklauf
Der Block von Anweisungen zwischen Funktion und End-Anweisung ist der Funktionskörper. Im Funktionskörper wirken die Funktionsparameter wie lokale Variablen, mit Werten, die von den Funktionsaufrufen bereitgestellt werden, wie zuvor beschrieben.
Die return-Anweisung liefert Werte an den Aufrufer der Funktion zurückgegeben werden. Es muss am Ende eines Blocks erscheinen (in einer Funktion, wenn dann, für Schleife, und so weiter; Es kann in seinem eigenen Block sein tun Rückkehr… Ende). Es kann keine, einen oder mehrere Rückgabewerte angeben:
return -- returns nil
return expression -- one return value
return expression1, expression2, ... -- multiple return values
Beispiele:
local function fsum(a)
local sum = 0
for i = 1, #a do
sum = sum + a[i]
end
return sum
end
local function fsum_and_average(a)
local sum = 0
for i = 1, #a do
sum = sum + a[i]
end
return sum, sum/#a
end
Funktionsaufrufe
Ein Funktionsaufruf führt den Körper einer Funktion aus, liefert Werte für ihre Parameter und empfängt Ergebnisse. Die Syntax für einen Funktionsaufruf ist Funktionsname (expression1, expression2 usw.), wobei die Funktionsparameter auf die entsprechenden Ausdrücke gesetzt werden. Die Anzahl der Ausdrücke und Parameter muss nicht gleich sein. Wenn weniger Ausdrücke als Parameter vorhanden sind, werden die übrigen Parameter auf nil gesetzt. Sie können also einen oder mehrere Parameter am Ende des Aufrufs optional machen, und Ihre Funktion kann überprüfen, ob sie angegeben sind, indem Sie überprüfen, ob sie nicht Null sind. Eine übliche Möglichkeit, dies zu tun, ist mit der Operation oder:
function f(p1, p2) -- p2 is optional
p2 = p2 or 0 -- if p2 is nil, set to a default of 0
. . .
end
Wenn mehr Ausdrücke als Parameter vorhanden sind, werden die verbleibenden Ausdruckswerte ignoriert.
Wie bereits erwähnt, können Funktionen mehrere Werte zurückgeben. Diese Rückgaben können in einer Mehrfachzuweisungsanweisung verwendet werden. Beispiel:
local my_array = {1, 2, 3, 4}
local my_sum, my_ave = sum_and_average(my_array)
Iterator-Funktionen und generische for-Schleifen
Jetzt, da wir Funktionen eingeführt haben, können wir über generische for-Schleifen sprechen. Die Syntax für die generische for-Schleife (mit einer Variablen) lautet:
for variable in iterator(parameter1, parameter2, etc.) do
statements in the for loop body
end
wobei iterator () eine Funktion mit null oder mehr Parametern ist, die für jede Iteration des Schleifenkörpers einen Wert für Variable bereitstellt. Die Iteratorfunktion verfolgt, wo sie sich in der Iteration befindet, indem sie eine Technik namens Closure verwendet, über die Sie sich hier keine Sorgen machen müssen. Es signalisiert das Ende der Iteration, indem null zurückgegeben wird. Iterator-Funktionen können mehr als einen Wert für die Verwendung in einer Mehrfachzuweisung zurückgeben.
Das Schreiben einer Iteratorfunktion ist jenseits des Rahmens dieses Papiers, aber es gibt eine Reihe nützlicher integrierter Iteratoren, die das Konzept veranschaulichen. Eins ist der Paare () Iterator, der durch die Einträge in einer Tabelle iteriert und zwei Werte zurückgibt, den Schlüssel und den Wert des nächsten Eintrags.
Beispiel:
local t = {k1 = "v1", k2 = "v2", k3 = "v3"}
local a = {} -- array to accumulate key-value pairs
local n = 0 -- number of key-value pairs
for key, value in pairs(t) do
n = n + 1
a[n] = key .. " = " .. value -- add key-value pair to the array
end
local s = table.concat(a, "; ") -- concatenate all key-value pairs into one string
Ein weiterer nützlicher Iterator ist die string.gmatch () Funktion, die im folgenden COMBINE_HEADERS () Beispiel verwendet wird.
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.