aFleX Scripting Language Fehlerbehebung

Die Skriptsprache von aFleX basiert auf dem Programmierstandard Tool Command Language (Tcl). Hier sind einige beliebte aFleX-Fehlkonfigurationen.
aFleX Syntax-Fehlermeldung "wrong # args: no script following"
Hinweis: aFleX-Syntaxfehler werden in der WebUI angezeigt, wenn Sie das aFleX-Skript speichern (Config > Service > aFleX) oder in der CLI(aflex check script-name).
This type of error is usually on an “if” line. In Tcl language, the opening curly bracket (” { “) has to be on the same line as the closing curly bracket. A space is required between the curly brackets: “} {“
Good: if { [HTTP::uri] starts_with “/private”)} {
xyz
}
Bad: if { [HTTP::uri] starts_with “/private”)}
{
xyz
}
Bad: if { [HTTP::uri] starts_with “/private”)}{
xyz
}
aFleX-Ausführungsabbrüche - falscher Variablenname
Hinweis: Statistiken über den Abbruch der aFleX-Ausführung sind in der WebUI (Monitor > Service > aFleX) und in der CLI (show aflex script-name) verfügbar.
Diese Art von Fehler kann durch einen Variablennamen verursacht werden, der einen Bindestrich (" - ") enthält. aFleX-Variablen können Zahlen, Buchstaben und den Unterstrich
( _ ) enthalten.
Gut: set ip_addr "10.0.0.10"
Schlecht: set ip-addr "10.0.0.10"
aFleX-Ausführungsabbrüche - HTTP-Header nicht vorhanden
Diese Art von Fehler kann auftreten, wenn das aFleX-Skript versucht, eine HTTP-Variable zu lesen, die in der Anfrage oder der Antwort nicht vorhanden ist. Zum Beispiel ist der HTTP-Header "Location" in der Antwort nicht immer vorhanden. Normalerweise ist dieser Header nur bei Serverumleitungen (Antwortcode 301 oder 302) vorhanden.
Good: if { [HTTP::header exists “Location”]} {
if {[HTTP::header Location] contains “intranet.example.com”} {
xyz
}
Bad: if { [HTTP::header Location] contains “intranet.example.com”} {
xyz
}
aFleX HTTP Content Rewrite nicht durchgeführt
Es liegt kein aFleX-Fehler vor, aber der HTTP-Inhalt der Antwort wird nicht geändert.
Dieser Fehler kann auftreten, wenn Server mit komprimierten Inhalten antworten. Um zu verhindern, dass Server mit komprimierten Inhalten antworten, entfernen Sie den Request-Header "Accept-Encoding", damit die Server davon ausgehen, dass die Clients keine Komprimierung unterstützen.
Hinweis: Sie können die HTTP-Komprimierung immer so konfigurieren, dass sie auf dem AX-Gerät selbst stattfindet, um die Antwortzeit für den Endbenutzer zu verbessern.
Good: when HTTP_REQUEST {
HTTP::header entfernen Accept-Encoding
}
wenn HTTP_RESPONSE {
HTTP::collect
}
wenn HTTP_RESPONSE_DATA {
xyz
HTTP::Freigabe
}
Bad: when HTTP_RESPONSE {
HTTP::collect
}
wenn HTTP_RESPONSE_DATA {
xyz
HTTP::release
}
Verwandte Beiträge
- Was ist aFleX?
- aFleX Tutorial: Scripting-Tool für Thunder-Produkte
- aFleX Erweiterte Skripterstellung
- aFleX Beispiele
- Optimierung der aFleX-Skriptsprache
aFleX-Skriptsprache und Layer 7 Deep-Packet-Inspection
aFleX ist eine leistungsstarke und flexible Skriptsprache, mit der Sie Ihren Datenverkehr verwalten und erweiterte Vorteile und Dienste anbieten können. Sie ist in den Thunder® Application Delivery Controller (ADC) integriert, eine hochleistungsfähige Load-Balancing-Lösung, mit der Ihre Anwendungen hochsicher, verfügbar und beschleunigt sind.