mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 07:37:02 +02:00
[DOC] french doc update
This commit is contained in:
parent
8cd311407e
commit
8f635a4feb
@ -23,6 +23,8 @@ environnement hautement disponible. En effet, il est capable de :
|
|||||||
d'usage.
|
d'usage.
|
||||||
- maintenir des clients sur le bon serveur serveur d'application en fonction
|
- maintenir des clients sur le bon serveur serveur d'application en fonction
|
||||||
de cookies applicatifs.
|
de cookies applicatifs.
|
||||||
|
- fournir des rapports d'état en HTML à des utilisateurs authentifiés, à
|
||||||
|
travers des URI de l'application interceptées.
|
||||||
|
|
||||||
Il requiert peu de ressources, et son architecture événementielle mono-
|
Il requiert peu de ressources, et son architecture événementielle mono-
|
||||||
processus lui permet facilement de gérer plusieurs milliers de connexions
|
processus lui permet facilement de gérer plusieurs milliers de connexions
|
||||||
@ -79,7 +81,7 @@ configuration ni
|
|||||||
|
|
||||||
Les statistiques ne sont disponibles que si le programme a été compilé avec
|
Les statistiques ne sont disponibles que si le programme a été compilé avec
|
||||||
l'option "STATTIME". Il s'agit principalement de données brutes n'ayant
|
l'option "STATTIME". Il s'agit principalement de données brutes n'ayant
|
||||||
d'utilité que lors de benchmarks par exemple.
|
d'utilité que lors de benchmarks par exemple, et sont amenées à disparaitre.
|
||||||
|
|
||||||
Les paramètres '-st' et '-sf' sont utilisés pour la reconfiguration à chaud.
|
Les paramètres '-st' et '-sf' sont utilisés pour la reconfiguration à chaud.
|
||||||
Voir la section à ce sujet.
|
Voir la section à ce sujet.
|
||||||
@ -1237,6 +1239,42 @@ Exemple :
|
|||||||
server web-backup1 192.168.2.1:80 cookie s4 check maxconn 200 backup
|
server web-backup1 192.168.2.1:80 cookie s4 check maxconn 200 backup
|
||||||
server web-excuse 192.168.3.1:80 check backup
|
server web-excuse 192.168.3.1:80 check backup
|
||||||
|
|
||||||
|
Cette option se montra si efficace pour réduire les temps de réponse des
|
||||||
|
serveurs que certains utilisateurs voulaient utiliser des valeurs trop basses
|
||||||
|
pour améliorer les performances de leurs serveurs. Seulement, ils n'étaient
|
||||||
|
alors plus en mesure de supporter de très fortes charges parce qu'il n'était
|
||||||
|
plus possible de les saturer. Pour cette raison, la version 1.2.14 a apporté la
|
||||||
|
limitation dynamique de connexions avec l'addition du paramètre "minconn".
|
||||||
|
Lorsque ce paramètre est associé à "maxconn", il active la limitation dynamique
|
||||||
|
basée sur la charge de l'instance. Le nombre maximal de sessions concurrentes
|
||||||
|
sur un serveur devient alors proportionnel au nombre de sessions de l'instance
|
||||||
|
par rapport à son 'maxconn'. Un minimum de <minconn> sessions sera toujours
|
||||||
|
permis quelle que soit la charge. Ceci assurera que les serveurs travailleront
|
||||||
|
au meilleur de leurs performances sous des charges normales, et qu'ils seront
|
||||||
|
tout de même capables de supporter de fortes pointes lorsque nécessaire. La
|
||||||
|
limite dynamique est calculée comme ceci :
|
||||||
|
|
||||||
|
srv.dyn_limit = max(srv.minconn, srv.maxconn * inst.sess / inst.maxconn)
|
||||||
|
|
||||||
|
Exemple :
|
||||||
|
---------
|
||||||
|
# Prendre soin du P3 qui n'a que 256 Mo de RAM.
|
||||||
|
listen web_appl 0.0.0.0:80
|
||||||
|
maxconn 10000
|
||||||
|
mode http
|
||||||
|
cookie SERVERID insert nocache indirect
|
||||||
|
balance roundrobin
|
||||||
|
server pentium3-800 192.168.1.1:80 cookie s1 weight 8 minconn 10 maxconn 100 check
|
||||||
|
server opteron-2.0G 192.168.1.2:80 cookie s2 weight 20 minconn 30 maxconn 300 check
|
||||||
|
server opteron-2.4G 192.168.1.3:80 cookie s3 weight 24 minconn 30 maxconn 300 check
|
||||||
|
server web-backup1 192.168.2.1:80 cookie s4 check maxconn 200 backup
|
||||||
|
server web-excuse 192.168.3.1:80 check backup
|
||||||
|
|
||||||
|
Dans l'exemple ci-dessus, le serveur "pentium3-800' recevra au plus 100
|
||||||
|
connexions simultanées lorsque l'instance du proxy en atteindra 10000, et
|
||||||
|
recevra seulement 10 connexions simultanées tant que le proxy sera sous les 1000
|
||||||
|
sessions.
|
||||||
|
|
||||||
Notes :
|
Notes :
|
||||||
-------
|
-------
|
||||||
- la requête ne restera pas indéfiniment en file d'attente, elle est
|
- la requête ne restera pas indéfiniment en file d'attente, elle est
|
||||||
@ -1245,17 +1283,66 @@ Notes :
|
|||||||
saturé, soit parce qu'il y a trop de requêtes en file d'attente,
|
saturé, soit parce qu'il y a trop de requêtes en file d'attente,
|
||||||
alors elle expirera avec une erreur 503.
|
alors elle expirera avec une erreur 503.
|
||||||
|
|
||||||
|
- si seul <minconn> est spécifié, il a le même effet que <maxconn>
|
||||||
|
|
||||||
- positionner des valeurs trop basses pour 'maxconn' peut améliorer les
|
- positionner des valeurs trop basses pour 'maxconn' peut améliorer les
|
||||||
performances mais aussi permettre à des utilisateurs trop lents de bloquer
|
performances mais aussi permettre à des utilisateurs trop lents de bloquer
|
||||||
un serveur pour les autres utilisateurs.
|
un serveur pour les autres utilisateurs.
|
||||||
|
|
||||||
|
|
||||||
|
3.5) Abandon des requêtes abortées
|
||||||
|
----------------------------------
|
||||||
|
En présence de très fortes charges, les serveurs mettront un certain temps à
|
||||||
|
répondre. La file d'attente du proxy se remplira, et les temps de réponse
|
||||||
|
suivront une croissance proportionnelle à la taille de file d'attente fois
|
||||||
|
le temps moyen de réponse par session. Lorsque les clients attendront plus de
|
||||||
|
quelques secondes, ils cliqueront souvent sur le bouton 'STOP' de leur
|
||||||
|
navigateur, laissant des requêtes inutiles en file d'attente et ralentissant
|
||||||
|
donc les autres utilisateurs.
|
||||||
|
|
||||||
|
Comme il n'y a aucun moyen de distinguer un vrai clic sur STOP d'une simple
|
||||||
|
fermeture du canal de sortie sur le client (shutdown(SHUT_WR)), les agents HTTP
|
||||||
|
doivent être conservateurs et considérer que le client n'a probablement fermé
|
||||||
|
que le canal de sortie en attendant la réponse. Toutefois, ceci introduit des
|
||||||
|
risques de congestion lorsque beaucoup d'utilisateurs font de même, et s'avère
|
||||||
|
aujourd'hui complètement inutile car probablement aucun client ne referme la
|
||||||
|
session en attendant la réponse. Certains agents HTTP supportent ceci (Squid,
|
||||||
|
Apache, HAProxy), et d'autres ne le supportent pas (TUX, et la plupart des
|
||||||
|
répartiteurs de charge matériels). Donc la probabilité pour qu'une notification
|
||||||
|
de fermeture d'un canal d'entrée côté client représente un utilisateur cliquant
|
||||||
|
sur 'STOP' est proche de 100%, et il est vraiment tentant d'abandonner la
|
||||||
|
requête prématurément sans polluer les serveurs.
|
||||||
|
|
||||||
|
Pour cette raison, une nouvelle option "abortonclose" a été introduite en
|
||||||
|
version 1.2.14. Par défaut (sans l'option), le comportement reste conforme à
|
||||||
|
HTTP. Mais lorsque l'option est spécifiée, une session dont le canal entrant
|
||||||
|
est fermé sera abortée si cela est possible, c'est à dire que la requête est
|
||||||
|
soit en file d'attente, soit en tentative de connexion. Ceci réduit
|
||||||
|
considérablement la longueur des files d'attentes et la charge sur les serveurs
|
||||||
|
saturés lorsque les utilisateurs sont tentés de cliquer sur 'STOP', ce qui à
|
||||||
|
son tour, réduit les temps de réponse pour les autres utilisateurs.
|
||||||
|
|
||||||
|
Exemple :
|
||||||
|
---------
|
||||||
|
listen web_appl 0.0.0.0:80
|
||||||
|
maxconn 10000
|
||||||
|
mode http
|
||||||
|
cookie SERVERID insert nocache indirect
|
||||||
|
balance roundrobin
|
||||||
|
server web1 192.168.1.1:80 cookie s1 weight 10 maxconn 100 check
|
||||||
|
server web2 192.168.1.2:80 cookie s2 weight 10 maxconn 100 check
|
||||||
|
server web3 192.168.1.3:80 cookie s3 weight 10 maxconn 100 check
|
||||||
|
server bck1 192.168.2.1:80 cookie s4 check maxconn 200 backup
|
||||||
|
option abortonclose
|
||||||
|
|
||||||
|
|
||||||
4) Fonctionnalités additionnelles
|
4) Fonctionnalités additionnelles
|
||||||
=================================
|
=================================
|
||||||
|
|
||||||
D'autres fonctionnalités d'usage moins courant sont disponibles. Il s'agit
|
D'autres fonctionnalités d'usage moins courant sont disponibles. Il s'agit
|
||||||
principalement du mode transparent, de la journalisation des connexions, et de
|
principalement du mode transparent, de la journalisation des connexions, de la
|
||||||
la réécriture des en-têtes.
|
réécriture des en-têtes, et du statut sous forme de page HTML.
|
||||||
|
|
||||||
|
|
||||||
4.1) Fonctionnalités réseau
|
4.1) Fonctionnalités réseau
|
||||||
---------------------------
|
---------------------------
|
||||||
@ -2283,6 +2370,126 @@ Exemples :
|
|||||||
defaults
|
defaults
|
||||||
# section vide qui annule tous les paramètes par défaut.
|
# section vide qui annule tous les paramètes par défaut.
|
||||||
|
|
||||||
|
|
||||||
|
4.8) Rapport d'état sous forme de page HTML
|
||||||
|
-------------------------------------------
|
||||||
|
Avec la version 1.2.14, il devient possible pour haproxy d'interceptre des
|
||||||
|
requêtes pour une URI particulière et de retourner un rapport complet d'état de
|
||||||
|
l'activité du proxy, et des statistiques sur les serveurs. Ceci est disponible
|
||||||
|
via le mot clé "stats" associé à n'importe laquelle de ces options :
|
||||||
|
|
||||||
|
- stats enable
|
||||||
|
- stats uri <uri prefix>
|
||||||
|
- stats realm <authentication realm>
|
||||||
|
- stats auth <user:password>
|
||||||
|
- stats scope <proxy_id> | '.'
|
||||||
|
|
||||||
|
|
||||||
|
Par défaut, le rapport est désactivé. Le fait de spécifier une des combinaision
|
||||||
|
ci-dessus active le rapport pour l'instance de proxy qui le référence. La
|
||||||
|
solution la plus simple est d'utiliser "stats enable" qui activera le rapport
|
||||||
|
avec les paramètres par défaut suivant :
|
||||||
|
|
||||||
|
- default URI : "/haproxy?stats" (CONFIG_STATS_DEFAULT_URI)
|
||||||
|
- default auth : non spécifié (pas d'authentication)
|
||||||
|
- default realm : "HAProxy Statistics" (CONFIG_STATS_DEFAULT_REALM)
|
||||||
|
- default scope : non specifié (accès à toutes les instances)
|
||||||
|
|
||||||
|
L'option "stats uri <uri_prefix>" permet d'intercepter un autre préfixe d'URI
|
||||||
|
que celui par défaut. Noter que n'importe quelle URI qui COMMENCE avec cette
|
||||||
|
chaîne sera validée. Par exemple, une instance pourrait être dédiée à la page
|
||||||
|
d'état seulement et répondre à toute URI.
|
||||||
|
|
||||||
|
Example :
|
||||||
|
---------
|
||||||
|
# intercepte n'importe quelle URI et retourne la page d'état.
|
||||||
|
listen stats :8080
|
||||||
|
mode http
|
||||||
|
stats uri /
|
||||||
|
|
||||||
|
|
||||||
|
L'option "stats auth <user:password>" active l'authentification "Basic" et
|
||||||
|
ajoute un couple "user:password" valide à la liste des comptes autorisés.
|
||||||
|
L'utilisateur <user> et le mot de passe <password> doivent être précisés
|
||||||
|
en clair dans le fichier de configuration, et comme ceci est de
|
||||||
|
l'authentification HTTP "Basic", il faut être conscient qu'ils transitent en
|
||||||
|
clair sur le réseau, donc il ne faut pas utiliser de compte sensible. La liste
|
||||||
|
est illimitée dans le but de pouvoir fournir des accès facilement à des
|
||||||
|
développeurs ou à des clients.
|
||||||
|
|
||||||
|
L'option "stats realm <realm>" définit le "domaine" ("realm") de validité du
|
||||||
|
mot de passe qui sera présenté dans la boîte de dialogue du navigateur
|
||||||
|
lorsqu'il demandera un compte utilisateur et un mot de passe. Il est important
|
||||||
|
de s'assurer que celui-ci soit différent de ceux utilisés par l'application,
|
||||||
|
autrement le navigateur tentera d'en utiliser un caché depuis l'application.
|
||||||
|
Noter que les espaces dans le nom de "realm" doivent être protégés par un
|
||||||
|
backslash ('\').
|
||||||
|
|
||||||
|
L'option "stats scope <proxy_id>" limite la portée du rapport d'état. Par
|
||||||
|
défaut, toutes les instances proxy sont listées. Mais dans certaines
|
||||||
|
circonstances, il serait préférable de ne lister que certains proxies ou
|
||||||
|
simplement le proxy courant. C'est ce que fait cette option. Le nom spécial "."
|
||||||
|
(un simple point) référence le proxy courant. Cette option peut être répétée
|
||||||
|
autant de fois que nécessaire pour autoriser d'autres proxies, même pour des
|
||||||
|
noms référencés plus loin dans la configuration ou bien des noms qui n'existent
|
||||||
|
pas encore. Le nom précisé est celui qui apparait après le mot clé "listen".
|
||||||
|
|
||||||
|
Exemple :
|
||||||
|
---------
|
||||||
|
# simple application embarquant la page d'état authentifiée
|
||||||
|
listen app1 192.168.1.100:80
|
||||||
|
mode http
|
||||||
|
option httpclose
|
||||||
|
balance roundrobin
|
||||||
|
cookie SERVERID postonly insert indirect
|
||||||
|
server srv1 192.168.1.1:8080 cookie srv1 check inter 1000
|
||||||
|
server srv1 192.168.1.2:8080 cookie srv2 check inter 1000
|
||||||
|
stats uri /my_stats
|
||||||
|
stats realm Statistics\ for\ MyApp1-2
|
||||||
|
stats auth guest:guest
|
||||||
|
stats auth admin:AdMiN123
|
||||||
|
stats scope .
|
||||||
|
stats scope app2
|
||||||
|
|
||||||
|
# simple application embarquant la page d'état sans authentification
|
||||||
|
listen app2 192.168.2.100:80
|
||||||
|
mode http
|
||||||
|
option httpclose
|
||||||
|
balance roundrobin
|
||||||
|
cookie SERVERID postonly insert indirect
|
||||||
|
server srv1 192.168.2.1:8080 cookie srv1 check inter 1000
|
||||||
|
server srv1 192.168.2.2:8080 cookie srv2 check inter 1000
|
||||||
|
stats uri /my_stats
|
||||||
|
stats realm Statistics\ for\ MyApp2
|
||||||
|
stats scope .
|
||||||
|
|
||||||
|
listen admin_page :8080
|
||||||
|
mode http
|
||||||
|
stats uri /my_stats
|
||||||
|
stats realm Global\ statistics
|
||||||
|
stats auth admin:AdMiN123
|
||||||
|
|
||||||
|
Notes :
|
||||||
|
-------
|
||||||
|
- les options "stats" peuvent aussi être spécifiées dans une section
|
||||||
|
"defaults", auquel cas la même configuration exactement sera fournie à
|
||||||
|
toutes les instances suivantes, d'où l'utilité du scope ".". Toutefois, si
|
||||||
|
une instance redéfinit n'importe quel paramètre "stats", alors les défauts
|
||||||
|
ne lui seront pas appliqués.
|
||||||
|
|
||||||
|
- l'authentification "Basic" est très simpliste et non sécurisée contre la
|
||||||
|
capture réseau. Aucun mot de passe sensible ne doit être utilisé, et il
|
||||||
|
est bon de savoir qu'il n'existe pas de moyen de le supprimer du navigateur
|
||||||
|
après usage, donc il sera envoyé tel quel à l'application au cours des
|
||||||
|
accès successifs.
|
||||||
|
|
||||||
|
- Il est très important de préciser l'option "httpclose", sinon le proxy ne
|
||||||
|
sera pas en mesure de détecter les URI dans les sessions keep-alive
|
||||||
|
maintenues entre le navigateur et les serveurs, donc les URI de stats
|
||||||
|
seront transmises telles quelles aux serveurs comme si l'option n'était
|
||||||
|
pas précisée.
|
||||||
|
|
||||||
|
|
||||||
=======================
|
=======================
|
||||||
| Paramétrage système |
|
| Paramétrage système |
|
||||||
=======================
|
=======================
|
||||||
|
Loading…
Reference in New Issue
Block a user