Supprimer 'nginx/templates_reverse_proxy_https.md'
parent
0e3f0b7620
commit
5625f2dbd6
|
@ -1,192 +0,0 @@
|
||||||
# Configuration type d'un reverse proxy NGINX
|
|
||||||
|
|
||||||
Ici, nous allons voir comment configurer un reverse proxy NGINX dans deux cas,
|
|
||||||
- Si le container du service est sur la node principale (Alpha).
|
|
||||||
- Si le container du service n'est pas sur la node principale mais sur Beta.
|
|
||||||
|
|
||||||
## Dans tous les cas
|
|
||||||
|
|
||||||
### Zone DNS
|
|
||||||
Il faut configurer notre zone DNS pour que _address.fr_ pointe vers l'adresse ip publique de Alpha. La mention subdomain représente le sous-domaine, s'il n'y en a pas, laisser un blanc.
|
|
||||||
```
|
|
||||||
subdomain IN A ip_publique_alpha
|
|
||||||
```
|
|
||||||
## Configuration du reverse proxy NGINX pour une connexion sur un container présent sur Alpha.
|
|
||||||
|
|
||||||
On commence par configurer un serveur NGINX simple pour l'obtention du certificat.
|
|
||||||
|
|
||||||
```
|
|
||||||
nano /etc/nginx/conf.d/address.fr.conf
|
|
||||||
```
|
|
||||||
Voilà la template du serveur web
|
|
||||||
|
|
||||||
```
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name address.fr;
|
|
||||||
location / {
|
|
||||||
proxy_pass http://ip_ct_alpha/;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Génération du premier certificat
|
|
||||||
|
|
||||||
On génère le premier certificat SSL à l'aide de certbot
|
|
||||||
```
|
|
||||||
systemctl restart nginx
|
|
||||||
certbot --nginx -d address.fr
|
|
||||||
```
|
|
||||||
Choisir No redirect.
|
|
||||||
|
|
||||||
Maintenant que le certificat est généré, on va remplacer la configuration du serveur web.
|
|
||||||
|
|
||||||
```
|
|
||||||
nano /etc/nginx/conf.d/address.fr.conf
|
|
||||||
```
|
|
||||||
Voilà la template du serveur web
|
|
||||||
```
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name address.fr;
|
|
||||||
return 301 https://$server_name$request_uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 443 ssl;
|
|
||||||
server_name address.fr;
|
|
||||||
location / {
|
|
||||||
proxy_pass http://ip_ct_alpha/;
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
ssl_certificate /etc/letsencrypt/live/address.fr/fullchain.pem;
|
|
||||||
ssl_certificate_key /etc/letsencrypt/live/address.fr/privkey.pem;
|
|
||||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
|
||||||
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Configuration du reverse proxy NGINX pour une connexion sur un container présent sur Beta.
|
|
||||||
|
|
||||||
### Sur Alpha
|
|
||||||
|
|
||||||
On commence par configurer un serveur NGINX simple pour l'obtention du certificat. Ce reverse proxy redirigera les requêtes sur _address.fr_ vers le container NGINX de la node Beta via DNAT.
|
|
||||||
|
|
||||||
```
|
|
||||||
nano /etc/nginx/conf.d/address.fr.conf
|
|
||||||
```
|
|
||||||
Voilà la template du serveur web
|
|
||||||
|
|
||||||
```
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name address.fr;
|
|
||||||
location / {
|
|
||||||
proxy_pass http://10.40.0.2:80/; #Ip de Beta sur le bridge Alpha/Beta
|
|
||||||
proxy_set_header Host address.fr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Sur Beta
|
|
||||||
On configure un serveur web qui va rediriger les requêtes entrantes sur Beta avec comme host _address.fr_ vers le container du service associé à l'host.
|
|
||||||
|
|
||||||
```
|
|
||||||
nano /etc/nginx/conf.d/address.fr.confsubdomain IN A ip_publique
|
|
||||||
|
|
||||||
```
|
|
||||||
Voilà la template du serveur web
|
|
||||||
```
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name address.fr;
|
|
||||||
location / {
|
|
||||||
proxy_pass http://ip_ct_beta/;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Obtention des deux premiers certificats SSL
|
|
||||||
|
|
||||||
### Sur Alpha
|
|
||||||
|
|
||||||
```
|
|
||||||
systemctl restart nginx
|
|
||||||
certbot --nginx -d address.fr
|
|
||||||
```
|
|
||||||
Choisir No redirect.
|
|
||||||
|
|
||||||
Maintenant que le certificat est généré, on va remplacer la configuration du serveur web.
|
|
||||||
|
|
||||||
On transmet la requête au container NGINX de beta qui s'occupera de nous mettre en communication avec le container correspondant au site sur la node Beta.
|
|
||||||
|
|
||||||
```
|
|
||||||
nano /etc/nginx/conf.d/address.fr.conf
|
|
||||||
```
|
|
||||||
Voilà la template du serveur web
|
|
||||||
```
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name address.fr;
|
|
||||||
return 301 https://$server_name$request_uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 443 ssl;
|
|
||||||
server_name address.fr;
|
|
||||||
location / {
|
|
||||||
proxy_pass http://10.40.0.2/; #Ip de Beta sur le bridge Alpha/Beta
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
ssl_certificate /etc/letsencrypt/live/address.fr/fullchain.pem;
|
|
||||||
ssl_certificate_key /etc/letsencrypt/live/address.fr/privkey.pem;
|
|
||||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
|
||||||
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Sur Beta
|
|
||||||
|
|
||||||
```
|
|
||||||
systemctl restart nginx
|
|
||||||
certbot --nginx -d address.fr
|
|
||||||
```
|
|
||||||
Choisir No redirect.
|
|
||||||
|
|
||||||
Maintenant que le certificat est généré, on va remplacer la configuration du serveur web.
|
|
||||||
|
|
||||||
On configure un serveur web qui va rediriger les requêtes entrantes sur Beta avec comme host _address.fr_ vers le container du service associé à l'host en https.
|
|
||||||
|
|
||||||
```
|
|
||||||
nano /etc/nginx/conf.d/address.fr.conf
|
|
||||||
```
|
|
||||||
Voilà la template du serveur web
|
|
||||||
```
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name address.fr;
|
|
||||||
return 301 https://$server_name$request_uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 443 ssl;
|
|
||||||
server_name address.fr;
|
|
||||||
location / {
|
|
||||||
proxy_pass http://ip_ct_beta/;
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
ssl_certificate /etc/letsencrypt/live/address.fr/fullchain.pem;
|
|
||||||
ssl_certificate_key /etc/letsencrypt/live/address.fr/privkey.pem;
|
|
||||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
|
||||||
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
|
|
||||||
}
|
|
||||||
```
|
|
Loading…
Reference in New Issue