Maj et ajout section redirection domaine / HTTPS

This commit is contained in:
whirigoyen 2021-11-24 11:09:03 +01:00
parent b7fc91ceb3
commit 4da1d14b35

View file

@ -512,9 +512,10 @@ Les valeurs renvoyées peuvent être les suivantes :
On notera que seuls les algorithmes d'équilibrage dynamiques (roundrobin et leastconn) permettront l'ajustement du poids via `agent-check`. Dans le cas de l'utilisation d'un algorithme statique comme `source` par exemple, seules des opérations telles que le passage en DRAIN, DOWN, MAINT et UP seront possibles.
### HTTP basic authentication
Pour mettre en place une authentification HTTP basique au niveau d'HAProxy, définir dans la section globale une liste d'utilisateur, soit avec un mot de passe en clair soit avec un mot de passe chiffré :
Pour mettre en place une authentification HTTP basique au niveau d'HAProxy, définir dans la section globale une liste d'utilisateurs, soit avec un mot de passe en clair, soit avec un mot de passe chiffré :
~~~
userlist NomDeMaUserList
@ -523,31 +524,48 @@ user user2 password $6$passwordSHA512
[…]
~~~
Dans le backend concerné rajouter :
Dans le backend concerné, ajouter :
~~~
auth AuthOkayPourMonSite http_auth(NomDeMaUserList)
http-request auth realm Texte if !AuthOkayPourMonSite
~~~
### Redirection d'un domaine
### Redirection
Remplacez les variables `$nom` par vos valeurs (en enlevant le `$`).
Les conditions après le `if` sont pas défaut (implicitement) combinées avec des ET logiques. Si nécessaire, on peut utiliser explicitement le mot-clé `or`.
#### Redirection HTTPS
~~~
acl domaine hdr(host) -i domaine1.com
redirect prefix http://www.domaine2.com code 301 if domaine
acl $nom_acl hdr(host) -i $domaine-from.org
redirect scheme https code 301 if $nom_acl !{ ssl_fc }
~~~
Ainsi, il fait la redirection si l'acl domaine correspond au domaine spécifié.
Attention, dans le cas d'une utilisation de certbot pour les renouvellements de certificats Let's encrypt, il peut être nécessaire d'utiliser un backend spécifique et/ou d'exclure de la redirection le chemin du challenge. Mais ceci sort du champ de cette section.
#### Exemples
Rediriger domaine1.com/ vers https://domaine2.com/ :
#### Redirection d'un domaine
~~~
acl rdr_to_domaine2 path /
redirect location https://domaine2.com/ code 302 if rdr_to_domaine2
acl $nom_acl hdr(host) -i $domaine-from.org
redirect prefix https://www.domaine-to.org code 301 if $nom_acl
~~~
La redirection est faite lorsque l'ACL correspond au domaine spécifié.
Attention, dans le cas d'une utilisation de certbot pour les renouvellements de certificats Let's encrypt, il peut être nécessaire d'utiliser un backend spécifique et/ou d'exclure de la redirection le chemin du challenge. Mais ceci sort du champ de cette section.
Si la redirection ne concerne qu'un seul domaine, on peut utiliser une ACL dite "anonyme" (= implicite) :
~~~
redirect prefix https://www.domaine-to.org code 301 if { hdr(host) -i $domaine-from.org }
~~~
### Résolution DNS et nombre dynamique de serveurs
_À partir de HAProxy 1.8_