Reverse Proxy
Prérequis
Bash |
---|
| apt update && apt install certbot python3-certbot-nginx -y # seulement si besoin de certificat HTTPS
|
Installation
Bash |
---|
| apt update && apt install nginx -y
|
Configuration
Configuration HTTP
Tout se passe dans un seul fichier :
Bash |
---|
| nano /etc/nginx/sites-available/default
|
Exemple de configuration :
Text Only |
---|
| # SERVICE
server {
listen 80;
listen [::]:80;
server_name service.test.fr;
location / {
proxy_set_header Host $http_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_set_header Upgrade $http_upgrade; # nécessaire pour usage comme VNC, ne pas mettre si pas besoin
proxy_set_header Connection 'upgrade'; # nécessaire pour usage comme VNC, ne pas mettre si pas besoin
proxy_cache_bypass $http_upgrade; # nécessaire pour usage comme VNC, ne pas mettre si pas besoin
proxy_pass http://ip-du-serveur:port-du-service;
}
}
|
Vérification
Vérifier la syntaxe du fichier à l'aide la commande suivante
Appliquer la configuration
Bash |
---|
| systemctl reload nginx.service
|
Configuration HTTPS
Génération d'un certificat Let's encrypt
Bash |
---|
| certbot --nginx -d service.test.fr
|
Modification du fichier de configuration
Certbot modifie le fichier de configuration "/etc/nginx/sites-available/default", venir remplacer les valeurs par les nôtres
Bash |
---|
| nano /etc/nginx/sites-available/default
|
Exemple de configuration :
Text Only |
---|
| # SERVICE
server {
listen 80;
listen [::]:80;
server_name service.test.fr;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/letsencrypt/live/service.test.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/service.test.fr/privkey.pem;
server_name service.test.fr;
location / {
proxy_set_header Host $http_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_set_header Upgrade $http_upgrade; # nécessaire pour usage comme VNC, ne pas mettre si pas besoin
proxy_set_header Connection 'upgrade'; # nécessaire pour usage comme VNC, ne pas mettre si pas besoin
proxy_cache_bypass $http_upgrade; # nécessaire pour usage comme VNC, ne pas mettre si pas besoin
proxy_pass http://ip-du-serveur:port-du-service;
}
}
|
Vérification
Vérifier la syntaxe du fichier à l'aide la commande suivante
Appliquer la configuration
Bash |
---|
| systemctl reload nginx.service
|
Activer le service au démarrage
Bash |
---|
| systemctl enable nginx.service --now
|