Vorheriges Thema: RPL - Ereignis-ReplikatorNächstes Thema: Gateways


URLSW: URL-Port-Schalter

Aktuelle Version: 3.0.4-1

URLSW: URL-Port-Schalter

Auf einen Blick

Katalog

System

Kategorie

Schalter

Benutzer-Volumes

no

Min. Speicher

96M

Betriebssystem

Linux

Einschränkungen

no

Fragen/Kommentare

Im Forum fragen

Funktionsübersicht

URLSW ist ein Schalter, der HTTP-Anfragen basierend auf dem Abgleich der Anforderungs-URI oder der Anforderungs-Header mit Regeln (definiert als reguläre Ausdrücke) auf der Appliance-Begrenzung an unterschiedliche Ausgaben verteilt. URLSW wird in Anwendungen verwendet, die mehr als eine Netz- oder Anwendungsserver-Appliance aufweisen, um HTTP-Anfragen flexibel unter ihnen zu verteilen. URLSW funktioniert ähnlich wie das Gegenstück PS8, jedoch auf einer höheren Ebene - es analysiert HTTP-Anfragen anstelle von tcp/udp-Ports.

URLSW hat auch eine eingebettete Systemintegritätsprüfung. Die Systemintegritätsprüfung fragt regelmäßig out-Terminals ab und ermittelt, ob die Server bereit für die Verarbeitung von Anfragen sind. Wenn einer der überprüften Servern nicht mehr funktionsbereit ist, deaktiviert URLSW automatisch den Anforderungsflow für diesen Server, und leitet die Anfragen an einen anderen geeigneten aktiven Server um. Wenn der zuvor nicht funktionsbereite Server wieder aktiv wird, wird er automatisch von der Systemintegritätsprüfung erkannt und erhält wieder Anfragen.

Der Schalter ist kaskadierbar; eingehender Datenverkehr, der mit keinem definierten regulären Ausdruck übereinstimmt, wird durch das aux-Terminal ohne Änderung weitergeleitet. Der gesamte an den Terminals outX und aux eingehende Datenverkehr wird über das Terminal in weitergeleitet.

URLSW wird normalerweise zum Umleiten von eingehendem Datenverkehr zu unterschiedlichen Appliances innerhalb einer Anwendung verwendet.

Ressourcen

Ressource

Minimum

Maximum

Standard

Getestet

CPU

0.1

2

0.1

2

Speicher

96 MB

160 MB

96 MB

128 MB

Bandbreite

1 Mbit/s

2 Gbit/s

250 Mbit/s

1800 Mbit/s

Terminals

Name

Richtung

Protokoll

Beschreibung

in

in

HTTP

Häufige Eingabe. An "in" gesendeter Datenverkehr wird nach einem Abgleich der URL oder der Header mit definierten regulären Ausdrücken an eine der Ausgaben gesendet.

ctl

in

HTTP

Steuer-Terminal, das zum Festlegen von regulären Ausdrücken, Aktivieren/Deaktivieren der Ausgaben und zum Abrufen der Ausgabe-Terminal-Einstellungen und -Status dient.

out1-out8

out

HTTP

Konfigurierte Ausgaben. Anfragen werden durch eine bestimmte Ausgabe weitergeleitet, die auf den outX_type- und outX_value-Eigenschaften basiert. Alle Ausgaben können unverbunden gelassen werden; an unverbundene Ausgaben gerichtete Anfragen werden verworfen.

aux

out

HTTP

Kaskadenausgabe. Eingehende Anfragen, die nicht für eine der out1-out8-Ausgaben bestimmt sind, werden durch dieses Terminal gesendet. Dieses Terminal kann unverbunden gelassen werden.

log

out

Alle

Zugriff auf ein CIFS-basiertes Netzwerkdateisystem zum Speichern der IIS-Protokolle (für Debugging). Der verbundene Server muss anonyme Anmeldungen zulassen und über eine benannte Freigabe mit Lese-/Schreibzugriff verfügen. Dieses Terminal kann unverbunden gelassen werden, wenn es nicht verwendet wird.

mon

out

CCE

Sendet Leistungs- und Ressourcenverwendungsstatistik. Dieses Terminal kann ohne Verbindung bleiben, wenn es nicht verwendet wird.

Allgemeine Eigenschaften

Name

Typ

Beschreibung

outX_type

string

Definiert die Kriterien, mit denen die eingehende Anfrage verglichen wird. Es bestehen 4 Optionen für diese Eigenschaft: hostname, cookie, url und file type.

  • hostname - Anfrage wird mit dem Hostnamen verglichen. Diese Wahl ist nützlich, wenn Webseiteninhalt auf mehrere Server aufgeteilt wird und der entsprechende Server je nach Hostname ausgewählt wird.
  • cookie - Anfrage wird mit Cookie verglichen. Diese Art der Serverauswahl könnte nützlich sein, wenn es unterschiedliche Kategorien von Webseitenbenutzern gibt. Zum Beispiel könnte sie in folgenden Situationen verwendet werden: 1. Es gibt normale Benutzer und die Administratoren/Moderatoren und ihre Anfragen sollten von verschiedenen Servern bearbeitet werden; 2. es gibt VIP-Benutzer, normale Benutzer und unregistrierte Benutzer, um Anfragen in Zeiten mit hohen Lasten zu priorisieren; 3. es gibt einen beschränkten Download-Bereich, und nur autorisierte Benutzer können Daten vom Server herunterladen, der nur diesem Zwecke dient. In allen Fällen werden Benutzeranfragen durch Cookies oder ihre Werte unterschieden.
  • url - Anfrage wird mit einem Teil der URL verglichen. Die gesamte URL-Zeichenfolge wird verwendet, um ein Ziel auszuwählen. Alle Teile der URL können verwendet werden: Protokoll ("http://" oder "shttp://"), der host- und location-Teil oder Kombinationen dieser Teile.
  • file type - Anfrage wird mit der Dateierweiterung verglichen. Nützlich in Situationen, bei denen die verschiedenen Server unterschiedliche Typen von statischem oder dynamischem Inhalt verarbeiten sollen.

Standard: hostname

outX_value

string

Reguläre Ausdrücke, mit denen der Abgleich vorgenommen werden soll. Eine Definition von regulären Ausdrücken finden Sie hier. Beispiele:

  • "*host1.com, *host.com, img.*.slashdot.org" für hostname,
  • "*PHPSESSIONID*, GA*" für cookie,
  • "http://host1.com/images/*, *://host2.com/*" für url und
  • "*.jpg, *.png" für file type.

Standard: (leer)
Bei den Werten muss auf Groß- bzw. Kleinschreibung geachtet werden.

Eigenschaften der Systemintegritätsprüfung

Name

Typ

Beschreibung

healthcheck_url

String

Die URL, die verwendet wird, um die Systemintegritätsprüfung der Backend-Webserver mit den Systemintegritätsprüfungs-Methoden "http_get" und "http_head" durchzuführen. Sie kann als eine vollständige URL (http://host.name/file/to/check/for.php) oder als ein relativer Pfad (/file/to/check/for.php) angegeben werden. Wenn eine URL angegeben wird, verwendet die Systemintegritätsprüfung das HTTP/1.1-Protokoll und den aus der URL extrahierten Hostnamen in ihrem Host:-Header. Dies ermöglicht die Verwendung von virtuellen Hosts. Wenn sie als ein relativer Pfad angegeben wird, verwendet die Systemintegritätsprüfung das HTTP/1.0-Protokoll und sucht nach dem von dieser Eigenschaft angegebenen Dokument. Wenn diese Eigenschaft leer ist, überprüft die Systemintegritätsprüfung den Standardstamm '/' mithilfe des HTTP/1.0-Protokolls.
Standard: (leer).

healthcheck_agent

String

Zeichenfolge, die als Agentbezeichner für die Methoden http_get und http_head der Systemintegritätsprüfung verwendet wird Wenn sie leer ist, wird "URLSW-health-check" verwendet.
Standard: (leer).

healthcheck_method

String

Die Methode, die für die Systemintegritätsprüfung der Backend-Webserver verwendet wird.

  • tcp_connect - Die Systemintegritätsprüfung wird mithilfe einer Verbindung zum Port 80 des Webservers ausgeführt. Wenn die Verbindung erfolgreich hergestellt wurde, wird bei der Systemintegritätsprüfung davon ausgegangen, dass der Webserver funktionsfähig ist. Dies ist die schnellste Methode und benötigt am wenigsten Ressourcen.
  • http_head - Die Systemintegritätsprüfung verwendet die HEAD-Methode, um das von der healthcheck_url-Eigenschaft angegebene Dokument anzufordern. Diese ist langsamer als tcp_connect und benötigt mehr Ressourcen sowohl auf URLSW als auch auf dem Webserver, allerdings ist sie auch zuverlässiger. Ein Statuscode von "2xx" oder "3xx", der von einem Webserver erhalten wird, validiert den Server als betriebsbereit.
  • http_get - Die Systemintegritätsprüfung verwendet die GET-Methode, um das von der healthcheck_url-Eigenschaft angegebene Dokument anzufordern. Dies ist die langsamste Methode, die die meisten Ressourcen benötigt, aber auch am zuverlässigsten ist. Ein Statuscode von "2xx" oder "3xx", der von einem Webserver erhalten wird, validiert den Server als betriebsbereit. Wenn die Eigenschaft "healthcheck_regexp" definiert ist, lädt die Systemintegritätsprüfung das Dokument einschließlich aller HTTP-Header und des Serverstatuscodes herunter und sucht nach Übereinstimmungen mit dem Wert für "healthcheck_regexp value". Wenn eine Übereinstimmung gefunden wird, gilt der Backend-Server als funktionsbereit, und er gilt als deaktiviert, wenn keine Übereinstimmung gefunden wird.

Standard: tcp_connect.

healthcheck_regexp

String

Eine Testzeichenfolge, die mit dem Systemintegritätsprüfungs-Modus "http_get" verwendet wird. Kurze oder häufig vorkommende Werte (z. B. OK) ergibt wahrscheinlich falsche positive Übereinstimmungen. Diese Zeichenfolge ist ein regulär Ausdruck im Perl-Stil; nähere Informationen zu regulären Ausdrücken im Perl-Stil sind hier verfügbar.
Standard: (leer).

healthcheck_interval

Int.

Intervall zwischen Systemintegritätsprüfungen der Backend-Webserver (in Sekunden angegeben).
Standard: 20 Sekunden.

Zeitüberschreitungseigenschaften

Name

Typ

Beschreibung

keepalive_timeout

Int.

Zeitüberschreitung für Keepalive-Verbindungen. Legt den Zeitraum fest, während dem die Keepalive-Verbindung mit dem Client nicht vom Server geschlossen werden wird.
Standard: 75.

client_header_timeout

Int.

Zeitraum, in dem der Client den Anfrage-Header senden muss. Wenn der Client nach Ablauf dieses Zeitraums keinen vollständigen Header erhalten hat, wird ein Fehler zurückgegeben.
Standard: 60.

client_body_timeout

Int.

Zeitraum, in dem der Client den Anfrage-Hauptteil senden muss. Dieser Zeitraum bezieht sich nicht auf die Übertragung des gesamten Anfrage-Hauptteils, sondern auf den Abstand zwischen den beiden Lesevorgängen. Wenn der Client nach Ablauf dieses Zeitraums keine Daten übertragen hat, wird ein Fehler zurückgegeben.
Standard: 60.

send_timeout

Int.

Zeitraum, in dem der Client Daten erhalten muss. Wenn der Client in diesem Zeitraum nicht antwortet, wird die Verbindung geschlossen. Dieser Zeitraum bezieht sich nicht auf die Übertragung der gesamten Antwort, sondern auf den Abstand zwischen den beiden Schreibvorgängen.
Standard: 60.

server_timeout

Int.

Zeitlimit in Sekunden für das Herstellen einer TCP-Verbindung zu Backend-Servern. Dies schließt die Systemintegritätsprüfung ein.
Diese Einstellung muss besonders beachtet werden, weil die Systemintegritätsprüfung sonst schnell das Zeitlimit überschreiten kann, wenn der Wert zu klein ist und hohe Lasten vorhanden sind; dies führt zur Deaktivierung von Ausgaben. Es wird empfohlen, das Zeitlimit auf mindestens 20 Sekunden festzulegen.
Standard: 20.

Steuerschnittstelleneigenschaften

Name

Typ

Beschreibung

ctl_port

Int.

Port, der verwendet wird, um auf die Webservice-Steuerschnittstelle über das clt-Terminal zuzugreifen.
Standard: 80.

Protokollierungseigenschaften

Name

Typ

Beschreibung

enable_access_log

String

Aktiviert oder deaktiviert das Zugriffsprotokoll. Standard: no

access_log_filename

String

Dateiname für das Zugriffsprotokoll. Standard: access.log

Benutzerdefinierte Zähler

Die URLSW-Appliance meldet die folgenden benutzerdefinierten Zähler durch das mon-Terminal.

Zählername

Beschreibung

Aktive Verbindungen

Anzahl aktiver Verbindungen

Akzeptierte Verbindungen

Anzahl akzeptierter Verbindungen

Verarbeitete Verbindungen

Anzahl verarbeiteter Verbindungen

Verarbeitete Anfragen

Anzahl verarbeiteter Anfragen

Aktive Leseverbindungen

Anzahl aktiver Leseverbindungen

Aktive Schreibverbindungen

Anzahl aktiver Schreibverbindungen

Aktive Wartverbindungen

Anzahl aktiver Warteverbindungen

Leistung

Anforderungsrate

URLSW leitet nicht weniger als 3000 Transaktionen (Anfrage/Antwort-Paare) pro Sekunde weiter, abhängig von Dokumentgröße und verfügbarer Netzwerkbandbreite.

Datendurchsatz

URLSW leitet nicht weniger als 25 MB/Sekunde weiter.

Gleichzeitige Verbindungen

URLSW unterstützt nicht weniger als 1000 gleichzeitige Anfragen. Bei Tests hat URLSW mehr als 10.000 gleichzeitige aktive Übertragungen unterstützt.

Fehlermeldungen

Im Fall von Appliance-Startfehlern können die folgenden Fehler im Systemprotokoll protokolliert werden:

Fehlermeldung

Beschreibung

Fehler: ctl-Terminal konnte nicht initialisiert werden; wenden Sie sich an den Support von CA Technologies.

Während der Initialisierung des ctl-Terminals ist ein Systemfehler aufgetreten; wenden Sie sich an den Support von CA Technologies.

Fehler: Das Zugriffsprotokoll ist aktiviert, aber das Protokoll-Terminal ist nicht verbunden.

Das Protokoll-Terminal ist nicht verbunden, aber "enable_access_log" ist auf "yes" festgelegt.

Fehler: Externe Systemintegritätsprüfung konnte nicht initialisiert werden, wenden Sie sich an den Support von CA-Technologies.

Ein Systemfehler trat auf, während die externe Systemintegritätsprüfung gestartet wurde; setzen Sie sich mit dem Support von CA Technologies in Verbindung.

Fehler: Statistikberichterstellung konnte nicht initialisiert werden, wenden Sie sich an den Support von CA-Technologies.

Während der Initialisierung der Statistikberichterstellung ist ein Systemfehler aufgetreten; wenden Sie sich an den Support von CA Technologies.

Programmsteuerung der Ausgabe-Terminals

Übersicht

Eine Webservice-Steuerungsschnittstelle wird am Terminal ctl am konfigurierten Port ctl_port angezeigt. Sie ermöglicht Folgendes:

Protokoll

Die Programmsteuerung der Ausgabe-Terminals verwendet die GET HTTP-Methode, die nur Lesefunktionen zur Verfügung stellt. So kann jeder unterstützte Protokollanfragetyp über seine URI und die Ausgabestruktur definiert werden. Zeichen, die in der URI als Sonderzeichen gelten, sollten mit der standardmäßigen %-Kodierung versehen werden.

Es folgt eine Beschreibung aller unterstützten URLs.

Steuerungsaufrufe

Folgende Steuerungsaufrufe können aufgerufen werden:

Typische Verwendung
Website mit Lastverteilung

Das folgende Diagramm zeigt eine typische Verwendung der URLSW Appliance mit 4 Webservern und Datenbank.

Verwendete Appliances:

Beispiel-Eigenschaftskonfiguration:

Eigenschaftsname

Wert

Hinweise

out1_type

hostname

Anfragen für srv1 werden nach Hostname abgeglichen.

out1_value

static.server.com, images.server.com

Anfragen für Hosts static.server.com und images.server.com werden von srv1 bereitgestellt.

out2_type

Dateityp

Anfragen für srv2 werden nach Dateityp abgeglichen.

out2_value

*.pdf

PDF-Dokumenten werden von srv2 bereitgestellt.

out3_type

Dateityp

Anfragen für srv3 werden nach Dateityp abgeglichen.

out3_value

*.php

PHP-Skripte wird von srv3 bereitgestellt.

Alle anderen Anfragen werden von srv4 bereitgestellt, der mit dem Terminal "aux" verbunden ist.

Clientanfrage kommt auf der Benutzer-Gateway an. Das Gateway leitet die Anfragen an den URLSW-Server weiter, der sie auf 4 Webserver verteilt, abhängig von den Regeln, die in den Appliance-Eigenschaften definiert oder dynamisch vom Terminal ctl hinzugefügt wurden. Auf das Terminal ctl können Sie über den Admin-Gateway zugreifen.

Hinweise

In der Appliance verwendete Open-Source- und Drittanbieter-Software

URLSW verwendet zusätzlich zu den Drittanbieter-Open-Source-Paketen der jeweiligen Basisklasse LUX6 die folgenden Drittanbieter-Open-Source-Pakete.

Software

Version

Geändert

Lizenz

Hinweise

nginx-stable

0.8.53

Nein

GPLv2

N/A

samba-client

3.5.10-125

Nein

GPLv2

N/A

samba-common

3.5.10-125

Nein

GPLv2

N/A

thttpd

2.25b

Nein

BSD

homepage