Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
configuration_de_nginx_comme_reverse_proxy_web [2023/07/30 22:40] – [Sources] superadminconfiguration_de_nginx_comme_reverse_proxy_web [2023/09/11 16:50] (Version actuelle) superadmin
Ligne 11: Ligne 11:
  
 Il y a ici deux topologies possibles, au choix : 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.
  
 +{{ ::topologies_reverseproxyweb.png?600 |}}
 +
 +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 =====
  
Ligne 18: Ligne 23:
   * Un deux autres serveurs web fonctionnels sous n'importe quel OS, et connectés au même réseau LAN que le premier, ou sous forme de conteneurs installés sur la même machine que le proxy.   * Un deux autres serveurs web fonctionnels sous n'importe quel OS, et connectés au même réseau LAN que le premier, ou sous forme de conteneurs installés sur la même machine que le proxy.
  
-===== Procédure =====+===== Instructions =====
  
 Créer un virtualhost pour le site1 :  Créer un virtualhost pour le site1 : 
Ligne 38: Ligne 43:
     #Indique  au serveur final quel protocole est utilisé entre l'hôte source et le proxy (pour les logs)     #Indique  au serveur final quel protocole est utilisé entre l'hôte source et le proxy (pour les logs)
         proxy_set_header X-Forwarded-Proto $scheme;         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;
     }     }
    </code>    </code>
Ligne 77: Ligne 84:
     #Indique  au serveur final quel protocole est utilisé entre l'hôte source et le proxy (pour les logs)     #Indique  au serveur final quel protocole est utilisé entre l'hôte source et le proxy (pour les logs)
         proxy_set_header X-Forwarded-Proto $scheme;         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;
     }     }
    </code>    </code>
Ligne 87: Ligne 96:
        
 <code>systemctl restart nginx</code> <code>systemctl restart nginx</code>
 +
 +:!: La directive ''proxy_set_header Host $host;'' peut être remplacée par ''proxy_set_header X-Forwarded-Host $host;'' néanmoins celle-ci ne fonctionne pas dans toutes les situations, je ne recommande pas son utilisation.
  
 ===== Sources ===== ===== Sources =====
 +
 +https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/How-to-setup-Nginx-reverse-proxy-servers-by-example
  
 https://serverfault.com/questions/706438/what-is-the-difference-between-nginx-variables-host-http-host-and-server-na https://serverfault.com/questions/706438/what-is-the-difference-between-nginx-variables-host-http-host-and-server-na