Nginx : Installation d’un Reverse Proxy

Nginx : Installation d’un Reverse Proxy

Table of Contents

Préambule

  • Un des outils reverse proxy le + populaires du moment est Nginx

  • Un reverse proxy est un serveur positionné entre les applications web internes et les utilisateurs extérieurs. Le reverse proxy aiguille les requêtes des utilisateurs vers le serveur approprié.

  • Le service reverse proxy agis comme un front-end qui traite toutes les requetes clientes entrantes et les distribue vers le back-end, bdd, ou autres serveurs. Puis il redirige les réponses en retour vers le client.

  • Nginx en tant que reverse proxy permet :

    • Load balancing
    • Améliore la sécurité
    • Meilleur performance
    • Point de terminaison SSL

Installation d'un reverse proxy avec Nginx

  • Une Debian 10 sera utilisée avec 4GB de RAM, 2 vCPU, 20GB de disque

Installer Nginx

  • Installer Nginx :

    sudo apt install nginx
  • Après l'installation, vous pouvez vérifier que Nginx c'est correctement installé en vérifiant la version :

    nginx -v

Configurer Nginx

  • Nous allons considérer que le site principal example.com est sur le même serveur que notre Nginx. Un site WordPress est disponible sur un sous domaine blog.example.com hébergé sur un serveur différent ayant l'adresse IP 172.0.1.10

  • Nous devons configurer un reverse proxy avec Nginx pour rediriger les requêtes à destination de blog.example.com vers le serveur 172.0.1.10

  • Désactivez le vhost pré-configuré par défaut :

    unlink /etc/nginx/sites-enabled/default
  • Rendez-vous dans le répertoire /etc/nginx/sites-available et créez le fichier de configuration du reverse proxy :

    cd /etc/nginx/sites-available
    sudo vim example.conf
  • Collez cette configuration Nginx :

    server {
    listen 80;
    server_name example.com www.example.com;
    
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    }
    
    server {
    listen 80;
    server_name blog.example.com;
    
    location / {
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://172.0.1.10:80;
    }
    }

Dans cet exemple, le site example.com et www.example.com reste accessible sur la même instance Nginx. Par contre, Nginx redirige toutes les connexions entrantes pour blog.example.com sur le port 80 vers le serveur 127.0.1.10 écoutant sur le port 80

  • Sauvegardez le fichier et activez le en créant un lien symbolique :

    sudo ln -s /etc/nginx/sites-available/example.conf /etc/nginx/sites-enabled/
  • Testez Nginx pour d'éventuelles erreurs de configuration :

    sudo nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
  • Si aucune erreur, redémarrez Nginx pour prendre en compte les modifications :

    sudo systemctl restart nginx
  • C'est terminé !

2 commentaires

Nginx : Reverse Proxy avec SSL – slash-root.fr Publié le17h09 - 15 octobre 2021

[…] Avoir suivi : Nginx : Installation d’un Reverse Proxy […]

Keycloak : Installation avec Docker et reverse-proxy SSL Nginx Publié le18h23 - 25 octobre 2021

[…] S'appuyer sur cet article : Nginx : Installation d’un Reverse Proxy […]

Les commentaires sont fermés.

Les commentaires sont fermés.