Comment faire un reverse proxy Nginx
Un serveur proxy est un serveur intermédiaire ou intermédiaire qui transfère les demandes de contenu de plusieurs clients vers différents serveurs sur Internet. Un serveur proxy inverse (reverse proxy) est un type de serveur proxy qui se trouve généralement derrière le pare-feu dans un réseau privé et dirige les demandes des clients vers le serveur principal approprié. Un proxy inverse fournit un niveau supplémentaire d'abstraction et de contrôle pour assurer la fluidité du trafic réseau entre les clients et les serveurs.
Dans ce tutoriel, nous allons voir comment mettre en place un reverse proxy sous Linux avec Nginx.
Etape 1 : installer Nginx
Debian, Ubuntu
sudo apt update
sudo apt install nginx
sudo systemctl enable --now nginx
CentOS, Almalinux, Rocky...etc
sudo dnf install nginx
sudo systemctl enable --now nginx
Etape 2 : Générer un certificat SSL si nécessaire
Installation de certbot
Debian, Ubuntu
sudo apt update && sudo apt install python3-certbot-nginx
CentOS, Almalinux, Rocky...etc
sudo dnf install certbot python3-certbot-nginx
Génération du certificat
certbot certonly -d <nom_domaine>
Facultatif : Si vous voulez activer le renouvellement automatique du certifcat SSL, ajoutez simplement la ligne suivante à cron (commande : export VISUAL=nano;crontab -e
)
@daily certbot renew --quiet --nginx
Ajout du fichier de configuration du reverse proxy
Sous Debian/Ubuntu, le fichier sera à mettre dans le dossier /etc/nginx/sites-enabled/
alors que sous CentOS et dérivées, il sera à mettre dans le dossier /etc/nginx/conf.d/
.
Nommez le comme vous voulez, je vous recommande : <nom_domaine>.conf
N'oubliez pas de remplacer les valeurs entre <>
Configuration sans SSL
server {
listen 80;
listen [::]:80;
server_name <nom_domaine>;
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location / {
proxy_pass http://localhost:<port>;
}
}
Configuration avec SSL
server {
listen 80;
listen [::]:80;
server_name <nom_domaine>;
return 302 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/<nom_domaine>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<nom_domaine>/privkey.pem;
server_name <nom_domaine>;
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location / {
proxy_pass http://localhost:<port>;
}
}
Redémarrage de Nginx
Et voilà, vous venez de mettre en place votre reverse proxy, pour l'activer, vérifiez votre fichier de configuration via le commande nginx -t
puis redémarrez le service via la commande sudo systemctl restart nginx