Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| configuration_de_nginx_comme_reverse_proxy_web [2023/04/01 12:23] – [Introduction] superadmin | configuration_de_nginx_comme_reverse_proxy_web [2023/09/11 16:50] (Version actuelle) – superadmin | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| ===== Introduction ===== | ===== Introduction ===== | ||
| - | L' | + | L' |
| - | Nous verrons aussi comment utiliser les virtual | + | Un virtual |
| + | |||
| + | Ce tutoriel est fait pour Nginx mais le serveur web apache fonctionne de la même manière, malgré que la syntaxe | ||
| ===== Topologie du LAB ===== | ===== Topologie du LAB ===== | ||
| + | Il y a ici deux topologies possibles, au choix : | ||
| + | * Une machine servant de proxy + 2 autres faisant office de serveurs web | ||
| + | * Une machine unique hébergeant le proxy et les 2 serveurs web sous forme de conteneurs docker exposant leur site chacun sur un port réseau différent de la machine physique. | ||
| + | |||
| + | {{ :: | ||
| + | |||
| + | Dans le cadre de ce tutoriel, on utilisera la seconde. Seule l'IP des serveurs web finaux change puisque dans ce cas c'est celle du proxy qui sera utilisée. | ||
| ===== Pré-requis ===== | ===== Pré-requis ===== | ||
| __Pour ce LAB il faudra :__ | __Pour ce LAB il faudra :__ | ||
| * Un serveur sous Linux qui aura le rôle de reverse proxy, si possible avec 2 cartes réseau. | * Un serveur sous Linux qui aura le rôle de reverse proxy, si possible avec 2 cartes réseau. | ||
| - | * Un autre serveur | + | * Un deux autres serveurs |
| - | ===== Procédure | + | ===== Instructions |
| + | |||
| + | Créer un virtualhost pour le site1 : | ||
| + | |||
| + | < | ||
| + | |||
| + | Y rédiger la configuration suivante : | ||
| + | |||
| + | < | ||
| + | server { | ||
| + | server_name site1.domaine; | ||
| + | location ^~ / { | ||
| + | #Remplacer l' | ||
| + | proxy_set_header Host $host; | ||
| + | #Indique au serveur final quelle est l'IP de l' | ||
| + | proxy_set_header X-Real-IP $remote_addr; | ||
| + | #Indique vers quel serveur final le proxy doit transférer les requêtes (ici IP:port) | ||
| + | proxy_pass http:// | ||
| + | # | ||
| + | proxy_set_header X-Forwarded-Proto $scheme; | ||
| + | #Indique au serveur final le port destination utilisé par le client pour se connecter au proxy | ||
| + | proxy_set_header X-Forwarded-Port $server_port; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Activer le virtual host en créant un lien symbolique de ce fichier dans ''/ | ||
| + | |||
| + | < | ||
| + | |||
| + | Relancer le service nginx pour appliquer les changements : | ||
| + | |||
| + | < | ||
| + | |||
| + | Il est possible de tester la validité de la configuration nginx en cas de doute : | ||
| + | |||
| + | < | ||
| + | |||
| + | C'est OK : | ||
| + | |||
| + | {{ :: | ||
| + | |||
| + | Maintenant on peut faire de même avec le second site : | ||
| + | |||
| + | Création du virtual host : | ||
| + | |||
| + | < | ||
| + | |||
| + | Y rédiger la configuration suivante : | ||
| + | |||
| + | < | ||
| + | server { | ||
| + | server_name site2.domaine; | ||
| + | location ^~ / { | ||
| + | #Remplacer l' | ||
| + | proxy_set_header Host $host; | ||
| + | #Indique au serveur final quelle est l'IP de l' | ||
| + | proxy_set_header X-Real-IP $remote_addr; | ||
| + | #Indique vers quel serveur final le proxy doit transférer les requêtes (ici IP:port) | ||
| + | proxy_pass http:// | ||
| + | # | ||
| + | proxy_set_header X-Forwarded-Proto $scheme; | ||
| + | #Indique au serveur final le port destination utilisé par le client pour se connecter au proxy | ||
| + | proxy_set_header X-Forwarded-Port $server_port; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Activer le virtual host en créant un lien symbolique de ce fichier dans ''/ | ||
| + | |||
| + | < | ||
| + | |||
| + | Relancer le service nginx pour appliquer les changements : | ||
| + | |||
| + | < | ||
| + | |||
| + | :!: La directive '' | ||
| ===== Sources ===== | ===== Sources ===== | ||
| + | https:// | ||
| + | |||
| + | https:// | ||
| + | https:// | ||