I – Objectif
Ce document décrit l'installation de NGINX et sa configuration en tant que reverse proxy, permettant de rediriger les requêtes HTTP/HTTPS entrantes vers un ou plusieurs serveurs backend.
II – Prérequis
● Ubuntu Server 22.04 LTS
● Accès sudo
● Firewall ouvert sur ports 80/TCP et 443/TCP
● Un ou plusieurs serveurs backend accessibles (ex: 127.0.0.1:3000)
III – Procédure
1) Installation de NGINX
Mettre à jour les paquets puis installer NGINX :
$ sudo apt update && sudo apt install nginx -y
2) Vérifier le statut du service
$ sudo systemctl status nginx
Si le service n'est pas actif :
$ sudo systemctl enable --now nginx
3) Créer un fichier de configuration Virtual Host
Les configurations des sites sont placées dans :
/etc/nginx/sites-available/
Créer un nouveau fichier de configuration :
$ sudo vi /etc/nginx/sites-available/monsite.conf
Contenu du fichier — exemple de reverse proxy vers un backend sur le port 3000 :
server {
listen 80;
server_name monsite.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
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;
}
}
proxy_pass définit l'adresse du backend vers lequel NGINX va transmettre les requêtes.
Les directives proxy_set_header permettent de transmettre les informations du client original au backend.
4) Activer la configuration
Créer un lien symbolique vers sites-enabled :
$ sudo ln -s /etc/nginx/sites-available/monsite.conf /etc/nginx/sites-enabled/
5) Tester la configuration
Vérifier qu'il n'y a pas d'erreur de syntaxe :
$ sudo nginx -t
Résultat attendu :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
6) Recharger NGINX
$ sudo systemctl reload nginx
7) Vérifier le fonctionnement
Tester depuis la machine locale :
$ curl -I http://monsite.example.com
La réponse doit retourner un code HTTP 200 ou une redirection provenant du backend.
IV – Conclusion
NGINX est maintenant installé et configuré comme reverse proxy. Les requêtes arrivant sur le port 80 sont transmises de manière transparente au serveur backend.
Pour aller plus loin, il est recommandé de sécuriser le site avec un certificat TLS via Let's Encrypt (certbot).