Aller au contenu

Guide Reverse Proxy Nginx


1. Installation

Sur Debian/Ubuntu

Info

sudo apt update
sudo apt install nginx


2. Configuration de base

Les configurations se trouvent dans /etc/nginx/sites-available/.

Exemple HTTP simple

reverseproxy.conf

server {
    listen 80;
    server_name monsite.domaine.com;

    location / {
        proxy_pass http://192.168.1.20;
        include /etc/nginx/proxy_params;
    }
}

Activation

Info

sudo ln -s /etc/nginx/sites-available/reverseproxy.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx


3. Paramètres Proxy

Créer ou vérifier /etc/nginx/proxy_params :

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;


4. Configuration HTTPS (TLS)

4.1 Certificats combinés (Optionnel)

Vous pouvez combiner certificat et clé privée dans un seul fichier PEM (bien que non standard, Nginx le supporte tant que la clé est lisible).

Info

cat certificat.crt cle_privee.key > certificat_combine.pem

Attention à protéger ce fichier !

4.2 Configuration Nginx HTTPS

Configuration Complète

server {
    listen 80;
    server_name monsite.domaine.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name monsite.domaine.com;

    # Certificats
    ssl_certificate /etc/ssl/certs/certificat_combine.pem;
    ssl_certificate_key /etc/ssl/certs/certificat_combine.pem;

    # Sécurité SSL
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://192.168.1.20;
        include /etc/nginx/proxy_params;
    }
}


5. Dépannage

Logs

Info

tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

Test

Info

curl -I https://monsite.domaine.com