Rubrique précédente: RPL - Réplicateur d'événementsRubrique suivante: Passerelles


URLSW : Commutateur de port URL

Dernière version : 3.0.4-1

URLSW : Commutateur de port URL

Aperçu rapide

Catalogue

System (Système)

Catégorie

Commutateurs

Volumes d'utilisateur

non

Min. mémoire

96M

SE

Linux

Contraintes

non

Questions/commentaires

Poser une question sur le forum

Présentation fonctionnelle

URLSW est un commutateur qui distribue les requêtes HTTP à différentes sorties selon que l'URI ou les en-têtes de requêtes correspondent aux règles, définies comme des expressions régulières sur le périmètre de l'appliance. URLSW est utilisé dans des applications disposant de plusieurs appliances de serveur Web ou d'applications afin de distribuer de façon flexible les requêtes HTTP. URLSW fonctionne de la même manière que son homologue PS8, mais à un niveau supérieur. Il analyse les requêtes HTTP au lieu des ports tcp/udp.

URLSW intègre également un outil de contrôle de l'intégrité. Celui-ci analyse périodiquement terminaux de sortie et détermine si les serveurs sont prêts à traiter des requêtes. Si l'un de serveurs contrôlé devient inopérationnel, URLSW désactive automatiquement flux de requêtes pour ce serveur en redirigeant la requête vers un autre serveur actif plus approprié. Lorsque le serveur qui n'était plus opérationnel redevient actif, l'outil de contrôle de l'intégrité le détecte automatiquement et ce serveur réceptionne de nouveau les requêtes.

Le commutateur est utilisé en cascade. Le trafic entrant qui ne correspond à aucune expression régulière définie est réacheminé sur le terminal aux sans aucune modification. Tout le trafic entrant reçu sur les terminaux outX et aux est renvoyé au terminal in.

URLSW est généralement utilisé pour acheminer le trafic entrant sur différentes appliances dans une application.

Ressources

Ressource

Minimum

Maximum

Valeur par défaut

Testé

UC

0.1

2

0.1

2

Mémoire

96 Mo

160 Mo

96 Mo

128 Mo

Bande passante

1 Mbit/s

2 Gbits/s

250 Mbits/s

1800 Mbits/s

Terminaux

name

dir

Protocole

description

in

in

HTTP

Entrée commune. Le trafic envoyé à au terminal in est dirigé vers l'une des sorties si une URL ou des en-têtes correspondent aux expressions régulières définies.

ctl

in

HTTP

Terminal de contrôle utilisé pour définir des expressions régulières. Activation/désactivation des sorties et récupération des paramètres et de l'état du terminal de sortie.

out1-out8

sortie

HTTP

Sorties configurées. Les requêtes sont envoyées via une sortie particulière en fonction des propriétés outX_type et outX_value. Ces sorties peuvent rester déconnectées. Les requêtes dirigées vers les sorties non connectées sont abandonnées.

aux

sortie

HTTP

Sortie en cascade. Les requêtes entrantes qui ne sont dirigées vers aucune des sorties out1-out8 sont acheminées via ce terminal. Ce terminal peut rester déconnecté.

log

sortie

Indifférent

Accès à un système de fichiers réseau basé sur CIFS pour le stockage des journaux (c'est-à-dire, à des fins de débogage). Le serveur connecté doit autoriser les connexions anonymes et avoir un partage lecture-écriture nommé share. Si ce terminal n'est pas utilisé, il peut rester déconnecté.

MON

sortie

CCE

Envoie des statistiques de performances et d'utilisation des ressources. Si ce terminal n'est pas utilisé, il peut rester déconnecté.

Propriétés générales

name

type

description

outX_type

chaîne

Définit les critères de correspondance de la requête entrante. 4 choix sont possibles pour cette propriété : hostname, cookie, url et file type.

  • hostname - La requête porte sur le nom d'hôte. Ce choix est utile lorsque le contenu du site Web est divisé serveurs distincts et que le serveur approprié est sélectionné par nom d'hôte.
  • cookie - La requête porte sur le cookie. Ce type de sélection de serveur peut être utile en présence de différentes catégories d'utilisateurs de site Web. Vous pouvez par exemple l'utiliser dans les situations suivantes : 1. Les requêtes des utilisateurs standard et des administrateurs/modérateurs doivent être traitées par des serveurs différents ; 2. Définition d'utilisateurs privilégiés, d'utilisateurs standard et d'utilisateurs non enregistrés afin de donner la priorité à certaines requêtes en cas de charges élevées ; 3. Définition d'une zone de téléchargement limités. Seuls les utilisateurs autorisés peuvent télécharger à partir d'un serveur spécialement prévu à cet effet. Dans tous ces cas, les requêtes des utilisateurs seront différenciées par la présence de cookies ou par la valeur de ces derniers.
  • url - La requête porte sur une partie spécifique de l'URL. La chaîne url complète permet de sélectionner une destination. Vous pouvez utiliser toutes les parties de l'URL : le protocole ("http://" ou "https://"), la partie hôte et emplacement ou une combinaison de celles-ci.
  • file type - La requête porte sur l'extension de fichier. Cette propriété est utile lorsque les différents serveurs doivent servir différents types de contenu statique ou dynamique.

Valeur par défaut : hosname

outX_value

chaîne

Expressions régulières utilisées pour la correspondance. Une définition d'expression régulière est disponible ici. Exemples :

  • "*host1.com, *host.com, img.*.slashdot.org" pour le nom d'hôte,
  • "*PHPSESSIONID*, GA*" for cookie,
  • "http://host1.com/images/*, *://host2.com/*" pour l'URL et
  • "*.jpg, *.png" pour le type de fichier.

Valeur par défaut : (vide)
Les valeurs sont sensibles à la casse.

Propriétés de contrôle de l'intégrité

name

type

description

healthcheck_url

Chaîne

URL utilisée pour effectuer le contrôle de l'intégrité des serveurs Web principaux dans les méthodes de contrôle de l'intégrité http_get et http_head. Il peut s'agir d'une URL complète (http://host.name/file/to/check/for.php) ou d'un chemin d'accès relatif (/file/to/check/for.php). S'il est spécifié en tant qu'URL, le contrôle de l'intégrité utilise le protocole HTTP/1.1 lorsqu'il effectue le contrôle de l'intégrité à l'aide du nom d'hôte extrait de l'URL dans son en-tête Host:. De cette façon, des hôtes virtuels peuvent être utilisés. Si l'adresse spécifiée est un chemin d'accès relatif, le contrôle de l'intégrité utilise le protocole HTTP/1.0 et vérifie le document spécifié par cette propriété. Si cette propriété est vide, le contrôle de l'intégrité fait porter ses vérifications sur la racine par défaut "/" à l'aide protocole de HTTP/1.0.
Valeur par défaut : (vide).

healthcheck_agent

Chaîne

Chaîne utilisée comme identificateur d'agent pour les méthodes de contrôle de l'intégrité http_get et http_head. Si la chaîne est vide, URLSW-health-check est utilisé.
Valeur par défaut : (vide).

healthcheck_method

Chaîne

Méthode utilisée pour le contrôle de l'intégrité des serveurs Web principaux.

  • tcp_connect - Le contrôle de l'intégrité est effectué à l'aide d'une connexion au port 80 du serveur Web. Si la connexion est correctement établie, le contrôle de l'intégrité suppose que le serveur Web est fonctionnel. Cette méthode est la plus rapide et est celle qui nécessite le moins de ressources.
  • http_head - Le contrôle de l'intégrité utilise la méthode HEAD pour demander le document spécifié par la propriété healthcheck_url. Cette méthode est plus lente que tcp_connect, requiert davantage de ressources sur URLSW et sur le serveur Web, mais est plus fiable. Un code d'état 2xx ou 3xx, reçu d'un serveur Web, valide le serveur comme étant opérationnel.
  • http_get - Le contrôle de l'intégrité utilise la méthode GET pour demander le document spécifié par la propriété healthcheck_url. Cette méthode est la plus lente et requiert davantage de ressources, mais est la plus fiable. Un code d'état 2xx ou 3xx, reçu d'un serveur Web, valide le serveur comme étant opérationnel. Si la propriété healthcheck_regexp est définie, le contrôle de l'intégrité télécharge le document y compris tous les en-têtes HTTP et les codes d'état du serveur et recherche les éléments correspondant à la valeur healthcheck_regexp. Si une correspondance est trouvée, le serveur principal est alors considéré comme fonctionnel. Dans le cas contraire, il est considéré comme désactivé.

Valeur par défaut : tcp_connect.

healthcheck_regexp

Chaîne

Chaîne de test utilisée avec le mode de contrôle de l'intégrité http_get. Des valeurs courtes ou communes (p. ex. OK) généreront probablement des faux positifs. Cette chaîne est une expression régulière Perl. Vous trouverez davantage d'informations sur les expressions régulières Perl ici.
Valeur par défaut : (vide).

healthcheck_interval

Entier

Intervalle (exprimé en secondes) entre les contrôles d'intégrité des serveurs Web principaux.
Valeur par défaut : 20 secondes.

Propriétés de délai d'expiration

name

type

description

keepalive_timeout

Entier

Délai d'expiration des connexions restées actives. Définit le délai d'expiration, pendant lequel la connexion avec le client sera maintenue par le serveur.
Valeur par défaut : 75.

client_header_timeout

Entier

Délai d'envoi de l'en-tête de la requête par le client. Si passé ce délai le client ne reçoit pas l'en-tête complet, une erreur est renvoyée.
Valeur par défaut : 60.

client_body_timeout

Entier

Délai d'envoi du corps de la requête par le client. Ce délai est défini pour ne pas transférer le corps entier de la demande, mais uniquement entre les deux opérations de lecture. Une erreur est renvoyée si le client ne transmet aucune donnée au cours de cette période.
Valeur par défaut : 60.

send_timeout

Entier

Délai pour la réception des données par le client. Si le client ne répond pas au cours de cet intervalle, la connexion est fermée. Ce délai est défini pour ne pas transférer la réponse entière, mais uniquement entre les deux opérations d'écriture.
Valeur par défaut : 60.

server_timeout

Entier

Délai d'expiration en secondes pour l'établissement d'une connexion tcp sur les serveurs principaux. Ce délai inclut le contrôle de l'intégrité.
Utilisez ce paramètre avec précaution : Si la valeur est trop petite, en cas de charge importante, le contrôle de l'intégrité peut expirer, provoquant ainsi la désactivation des sorties. Il n'est pas recommandé de définir un délai d'expiration inférieur à 20 secondes.
Valeur par défaut : 20.

Propriétés de l'interface de contrôle

name

type

description

ctl_port

Entier

Port utilisé pour accéder à l'interface de contrôle de service Web via le terminal ctl.
Valeur par défaut : 80

Propriétés de journalisation

name

type

description

enable_access_log

Chaîne

Active ou désactive le journal d'accès. Valeur par défaut : no

access_log_filename

Chaîne

Nom de fichier du journal d'accès. Valeur par défaut : access.log

Compteurs personnalisés

L'appliance URLSW signale les compteurs personnalisés suivants via le terminal mon.

Nom du compteur

Description

Connexions actives

Nombre de connexions actives.

Connexions acceptées

Nombre de connexions acceptées

Connexions traitées

Nombre de connexions traitées

Requêtes traitées

Nombre de requêtes traitées

Connexions actives en lecture seule

Nombre de connexions actives en lecture seule.

Connexions actives en écriture

Nombre de connexions actives en écriture.

Connexions actives en attente

Nombre de connexions actives en attente.

Performances

Taux de requêtes

URLSW achemine pas moins de 3000 transactions (paires requête/réponse) par seconde, en fonction de la taille de document et de la disponibilité de la bande passante réseau.

Débit des données

URLSW achemine pas moins de 25 Mo/seconde.

Connexions simultanées

URLSW prend en charge pas moins de 1000 demandes simultanées. Lors des tests, URLSW a pris en charge plus de 10 000 transferts actifs simultanés.

Messages d'erreur

En cas d'échec de démarrage de l'appliance, les erreurs suivantes peuvent être consignées dans le journal système :

Message d'erreur

Description

Error: failed to initialize ctl terminal, please contact CA Technologies support.

Une erreur système s'est produite pendant l'initialisation du terminal ctl. Contactez le support technique de CA.

Error: access log is enabled, but log terminal is not connected.

Le terminal de journal n'est pas connecté, mais enable_access_log est défini sur yes.

Error: failed to initialize external health checker, please contact CA Technologies support.

Une erreur système s'est produite au démarrage de l'outil de contrôle de l'intégrité externe. Contactez le support technique de CA.

Error: failed to initialize statistics reporting, please contact CA Technologies support.

Une erreur système s'est produite lors de l'initialisation de la génération des rapports de statistiques. Contactez le support technique de CA Technologies.

Contrôle programmé des terminaux de sortie

Présentation

Une interface de service Web de contrôle est présente sur le terminal ctl sur le port ctl_port configuré qui permet d'effectuer les opérations suivantes :

Protocole

Le contrôle programmé des terminaux de sortie utilise la méthode GET HTTP qui n'autorise que la fonctionnalité de lecture. Ainsi, tous les types de requête de protocole pris en charge peuvent être définis au moyen de son URI et de la structure de sortie. Les caractères considérés comme spéciaux pour l'URI doivent être échappés à l'aide de la norme de codage standard %.

Tous les URI pris en charge sont décrits ci-dessous :

Appels de contrôle

Les appels de contrôle suivants peuvent être invoqués :

Utilisation standard
Site Web avec distribution de charge

Le diagramme suivant affiche une utilisation standard de l'appliance URLSW avec 4 serveurs Web et bases de données.

Appliances en cours d'utilisation :

Exemple de configuration de propriété :

Nom de propriété

Valeur

Notes

out1_type

hostname

La correspondance pour les requêtes relatives srv1 est établie sur la base du nom d'hôte.

out1_value

static.server.com, images.server.com

Les requêtes pour les hôtes static.server.com et images.server.com sont traitées par srv1.

out2_type

type de fichier

La correspondance pour les requêtes relatives srv2 est établie sur la base du type de fichier.

out2_value

*.pdf

Les documents PDF sont traités par srv2.

out3_type

type de fichier

La correspondance pour les requêtes relatives srv3 est établie sur la base du type de fichier.

out3_value

*.php

Les scripts PHP sont traités par srv3.

Toutes les autres requêtes sont traitées par srv4 car il est connecté au terminal aux.

La requête client arrive sur la passerelle utilisateur. La passerelle transfère les requêtes au serveur URLSW qui les répartit entre 4 serveurs Web en fonction des règles définies dans les propriétés d'appliance ou ajoutées de façon dynamique par le terminal ctl. Le terminal ctl est accessible par la passerelle admin.

Notes

Logiciels Open Source et tiers utilisés au sein de l'appliance

URLSW utilise les packages Open Source tiers suivants en plus des packages Open Source tiers utilisés par sa classe de base LUX6.

Logiciel

Version

Modifié

Licence

Notes

nginx-stable

0.8.53

Non

GPLv2

N/D

samba-client

3.5.10-125

Non

GPLv2

N/D

samba-common

3.5.10-125

Non

GPLv2

N/D

thttpd

2.25b

Non

BSD

page d'accueil