« Proxy » : différence entre les versions

De Documentation
Aller à la navigationAller à la recherche
Page créée avec «  ********************************************************************* * * * Installation d'nginx et de certbot dans un conteneur Alpine léger * * * ********************************************************************* Pour que la redirection fonctionne, il faut ajouter un CNAME aux sous-domaines et non les rediriger (réécriture de la requête sinon, et échec !) ********* * nginx * ********* # apk update && apk upgrade Installation d... »
 
Aucun résumé des modifications
Ligne 1 : Ligne 1 :


*********************************************************************
----
*     *
=Installation d'nginx et de certbot dans un conteneur Alpine léger=
* Installation d'nginx et de certbot dans un conteneur Alpine léger *
*     *
*********************************************************************


Pour que la redirection fonctionne, il faut ajouter un CNAME aux sous-domaines et non les rediriger (réécriture de la requête sinon, et échec !)
Pour que la redirection fonctionne, il faut ajouter un CNAME aux sous-domaines et non les rediriger (réécriture de la requête sinon, et échec !)


*********
==nginx==
* nginx *
*********


# apk update && apk upgrade
  # apk update && apk upgrade


Installation de nginx
Installation de nginx
# apk add nginx
  # apk add nginx


Démarrage automatique du service :
Démarrage automatique du service :
# rc-update add nginx
  # rc-update add nginx


Mettre le conteneur en frontal (à partir de l'hôte)
Mettre le conteneur en frontal (à partir de l'hôte)
# lxc config device add nom_du_conteneur myport80 proxy listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80 proxy_protocol=true
  # lxc config device add nom_du_conteneur myport80 proxy listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80 proxy_protocol=true
# lxc config device add nom_du_conteneur myport443 proxy listen=tcp:0.0.0.0:443 connect=tcp:127.0.0.1:443 proxy_protocol=true
  # lxc config device add nom_du_conteneur myport443 proxy listen=tcp:0.0.0.0:443 connect=tcp:127.0.0.1:443 proxy_protocol=true


annuler le fichier de conf par défaut
annuler le fichier de conf par défaut
# mv /etc/nginx/http.d/default.conf /etc/nginx/http.d/default.conf.sav
  # mv /etc/nginx/http.d/default.conf /etc/nginx/http.d/default.conf.sav


Configuration des redirections (voir fichier complet plus bas)
Configuration des redirections (voir fichier complet plus bas)
# vi /etc/nginx/http.d/proxy.conf
  # vi /etc/nginx/http.d/proxy.conf


server {
  server {
         listen 80 proxy_protocol;
         listen 80 proxy_protocol;
         listen [::]:80 proxy_protocol;
         listen [::]:80 proxy_protocol;
 
 
         server_name tables.lesitadom.fr;
         server_name tables.lesitadom.fr;
 
 
         location / {
         location / {
                 include /etc/nginx/proxy_params;
                 include /etc/nginx/proxy_params;
                 proxy_pass http://tables.lxd;
                 proxy_pass http://tables.lxd;
         }
         }
 
 
         real_ip_header proxy_protocol;
         real_ip_header proxy_protocol;
         set_real_ip_from 127.0.0.1;
         set_real_ip_from 127.0.0.1;
}
  }
...etc
...etc


Créer le fichier dans /etc/nginx/proxy_params
Créer le fichier dans /etc/nginx/proxy_params
# vi /etc/nginx/proxy_params
  # vi /etc/nginx/proxy_params
proxy_set_header Host $http_host;
 
proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;


Démarrer nginx
Démarrer nginx
# rc-service nginx start
  # rc-service nginx start


Reconfigurer les autres conteneurs pour mettre la nouvelle adresse (fichier remoteip.conf)
Reconfigurer les autres conteneurs pour mettre la nouvelle adresse (fichier remoteip.conf)
Sur chaque conteneur client :
Sur chaque conteneur client :
création du fichier /etc/apache2/conf.d/remoteip.conf avec
création du fichier /etc/apache2/conf.d/remoteip.conf avec :
RemoteIPHeader X-Real-IP
  RemoteIPHeader X-Real-IP
RemoteIPTrustedProxy 10.178.91.45 fd42:b9ca:1a60:95fc:216:3eff:fe71:850f
  RemoteIPTrustedProxy 10.178.91.45 fd42:b9ca:1a60:95fc:216:3eff:fe71:850f
ou
ou
RemoteIPHeader X-Real-IP
  RemoteIPHeader X-Real-IP
RemoteIPTrustedProxy proxy.lxd (nom du conteneur nginx, plus correct dans la configuration conteneurs)
  RemoteIPTrustedProxy proxy.lxd (nom du conteneur nginx, plus correct dans la configuration conteneurs)
modification de /etc/apache2/httpd.conf
modification de /etc/apache2/httpd.conf
décommenter :
décommenter :
LoadModule remoteip_module modules/mod_remoteip.so
  LoadModule remoteip_module modules/mod_remoteip.so


relancer les services apache2
relancer les services apache2
# rc-service apache2 restart
  # rc-service apache2 restart


******************************************************
----
* Certbot (cf. https://certbot.eff.org/instructions) *
==Certbot==
******************************************************
(cf. https://certbot.eff.org/instructions)


Création d'un environnement virtuel pour certbot
Création d'un environnement virtuel pour certbot
# apk add python3 augeas-libs
  # apk add python3 augeas-libs
 
  # python3 -m venv /opt/certbot/
# python3 -m venv /opt/certbot/
  # /opt/certbot/bin/pip install --upgrade pip
# /opt/certbot/bin/pip install --upgrade pip


Installer certbot dans l'environnement créé :
Installer certbot dans l'environnement créé :
# /opt/certbot/bin/pip install certbot certbot-nginx
  # /opt/certbot/bin/pip install certbot certbot-nginx


Préparer la commande certbot :
Préparer la commande certbot :
# ln -s /opt/certbot/bin/certbot /usr/bin/certbot
  # ln -s /opt/certbot/bin/certbot /usr/bin/certbot


(Raspberry configuré pour écouter 80 et 443)
(Raspberry configuré pour écouter 80 et 443)


Configuration automatique d'nginx)
Configuration automatique d'nginx
# certbot --nginx
  # certbot --nginx


Rem : on peut également ne générer qu'un certificat et configurer nginx à la main en lançant :
Rem : on peut également ne générer qu'un certificat et configurer nginx à la main en lançant :
# certbot certonly --nginx
  # certbot certonly --nginx
Le processus demande  
Le processus demande  
Ligne 103 : Ligne 97 :
  - indiquer quels serveurs doivent être en HTTPS (se base sur le fichier de configuration d'nginx : proxy.conf ici)
  - indiquer quels serveurs doivent être en HTTPS (se base sur le fichier de configuration d'nginx : proxy.conf ici)
   
   
Automatiser la mise à jour du certificat :
Automatiser la mise à jour du certificat :
 
  # echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" |  tee -a /etc/crontabs/root > /dev/null
  # echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" |  tee -a /etc/crontabs/root > /dev/null
ou éditer cron et ajouter : 0      0      1      */2    *      certbot renew
ou éditer cron et ajouter : 0      0      1      */2    *      certbot renew
# crontab -e
# crontab -e
0      0      1      */2    *      certbot renew -q (pour quiet)
0      0      1      */2    *      certbot renew -q (pour quiet)
(vérifier si certbot ne font pas le bordel dans le fichier de conf d'nginx : faire un fichier de sauvegarde fonctionnel...)
(vérifier si certbot ne fout pas le bordel dans le fichier de conf d'nginx : faire un fichier de sauvegarde fonctionnel...)




************ Ajouté automatiquement dans la conf de chaque redirection
==Ajouté automatiquement dans la conf de chaque redirection==
listen [::]:443 ssl ipv6only=on; # managed by Certbot
  listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
  listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/lesitadom.fr/fullchain.pem; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/lesitadom.fr/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/lesitadom.fr/privkey.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/lesitadom.fr/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
************


************ Et pour chaque bloc serveur, la conf correspondante (redirection permanente)
Et pour chaque bloc serveur, la conf correspondante (redirection permanente)
server {                                                                                     
  server {                                                                                     
     if ($host = lesitadom.fr) {                                                             
     if ($host = lesitadom.fr) {                                                             
         return 301 https://$host$request_uri;                                               
         return 301  
  https://$host$request_uri;                                               
     } # managed by Certbot                                                                   
     } # managed by Certbot                                                                   
                                                                                              
                                                                                              
Ligne 133 : Ligne 127 :
         server_name lesitadom.fr;                                                           
         server_name lesitadom.fr;                                                           
     return 404; # managed by Certbot                                                         
     return 404; # managed by Certbot                                                         
                                                                                           
}                     
                                                                                           
}                     
*************


!!!! Certbot modifie le fichier de configuration d'nginx, mais ne met pas 'proxy_protocol' à la fin des directives d'écoute.
  !!!! Certbot modifie le fichier de configuration d'nginx, mais ne met pas 'proxy_protocol' à la fin des directives d'écoute.
==>> ! il faut le rajouter à la main, sinon rien ne fonctionne et on est bon pour trois jours de recherche sur le net !!!!
  ==>> ! il faut le rajouter à la main, sinon rien ne fonctionne et on est bon pour trois jours de recherche sur le net !!!!
"Managed by Certbot" comme un con et codé avec les pieds !!!
  "Managed by Certbot" comme un con et codé avec les pieds !!!


Création d'un fichier /etc/nginx/le.conf avec :
Création d'un fichier /etc/nginx/le.conf avec :
Ligne 150 : Ligne 141 :


et d'un fichier /etc/nginx/realip.conf avec :
et d'un fichier /etc/nginx/realip.conf avec :
real_ip_header proxy_protocol;                                                           
  real_ip_header proxy_protocol;                                                           
set_real_ip_from 127.0.0.1;
  set_real_ip_from 127.0.0.1;


et les inclure dans chaque
et les inclure dans chaque


server {
  server {
listen [::]:443 ssl ipv6only=on proxy_protocol;
      listen [::]:443 ssl ipv6only=on proxy_protocol;
    listen 443 ssl proxy_protocol;
      listen 443 ssl proxy_protocol;
             
         
include /etc/nginx/le.conf;
      include /etc/nginx/le.conf;
server_name toto.lesitadom.fr;
      server_name toto.lesitadom.fr;
location / {
          location / {
}
          ...
include /etc/nginx/realip.conf;
          }
}
      include /etc/nginx/realip.conf;
  }


Tester la validité des certificats :
Tester la validité des certificats :
https://www.ssllabs.com/ssltest/index.html
https://www.sslshopper.com/ssl-checker.html
https://www.ssllabs.com/ssltest/index.html
  https://www.sslshopper.com/ssl-checker.html




Pour lister les certificats :
Pour lister les certificats :
# certbot certificates
  # certbot certificates


pour lister les sous-domaines inclus :
pour lister les sous-domaines inclus :
# certbot certificates --cert-name lesitadom.fr
  # certbot certificates --cert-name lesitadom.fr


Pour ajouter ou retirer un sous-domaine du certificat :
Pour ajouter ou retirer un sous-domaine du certificat :
# certbot certonly --cert-name <nom du certificat> -d <liste du domaine et des sous-domaines à inclure, séparés par ','>
  # certbot certonly --cert-name <nom du certificat> -d <liste du domaine et des sous-domaines à inclure, séparés par ','>


Exemple :
Exemple :
# certbot certonly --cert-name lesitadom.fr -d lesitadom.fr,bcd.lesitadom.fr,phpma.lesitadom.fr
  # certbot certonly --cert-name lesitadom.fr -d lesitadom.fr,bcd.lesitadom.fr,phpma.lesitadom.fr
(ne garde que le domaine principal et les sous-domaines 'bcd' et 'phpma')
(ne garde que le domaine principal et les sous-domaines 'bcd' et 'phpma')


Ligne 189 : Ligne 182 :
pas possible, il faut préciser tous les sous-domaines à chaque fois (en rajoutant --expand, on met le certificat à jour ?)
pas possible, il faut préciser tous les sous-domaines à chaque fois (en rajoutant --expand, on met le certificat à jour ?)
Exemple :
Exemple :
# certbot certonly --expand --cert-name lesitadom.fr -d lesitadom.fr,bcd.lesitadom.fr,phpma.lesitadom.fr,[sous-domaines à ajouter séparés par une ',']
  # certbot certonly --expand --cert-name lesitadom.fr -d lesitadom.fr,bcd.lesitadom.fr,phpma.lesitadom.fr,[sous-domaines à ajouter séparés par une ',']
-> Choix 1 : Nginx web server
-> Choix 1 : Nginx web server
-> Vérifier la mise à jour puis "u" (update)
-> Vérifier la mise à jour puis "u" (update)
Ligne 201 : Ligne 194 :
3. Ajouter le sous-domaine au certificat letsencrypt existant (--expand)
3. Ajouter le sous-domaine au certificat letsencrypt existant (--expand)


***************************************************************


----
==Fichiers de configuration==


**********************************************************************************************************
* fichiers de configuration *
**********************************************************************************************************
/etc/nginx/http.d/proxy.conf (copie proxy.sav)
/etc/nginx/http.d/proxy.conf (copie proxy.sav)
#_____________________________
#_____________________________

Version du 22 avril 2025 à 21:58


Installation d'nginx et de certbot dans un conteneur Alpine léger

Pour que la redirection fonctionne, il faut ajouter un CNAME aux sous-domaines et non les rediriger (réécriture de la requête sinon, et échec !)

nginx

 # apk update && apk upgrade

Installation de nginx

 # apk add nginx

Démarrage automatique du service :

 # rc-update add nginx

Mettre le conteneur en frontal (à partir de l'hôte)

 # lxc config device add nom_du_conteneur myport80 proxy listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80 proxy_protocol=true
 # lxc config device add nom_du_conteneur myport443 proxy listen=tcp:0.0.0.0:443 connect=tcp:127.0.0.1:443 proxy_protocol=true

annuler le fichier de conf par défaut

 # mv /etc/nginx/http.d/default.conf /etc/nginx/http.d/default.conf.sav

Configuration des redirections (voir fichier complet plus bas)

 # vi /etc/nginx/http.d/proxy.conf
 server {
       listen 80 proxy_protocol;
       listen [::]:80 proxy_protocol;
 
       server_name tables.lesitadom.fr;
 
       location / {
               include /etc/nginx/proxy_params;
               proxy_pass http://tables.lxd;
       }
 
       real_ip_header proxy_protocol;
       set_real_ip_from 127.0.0.1;
 }

...etc

Créer le fichier dans /etc/nginx/proxy_params

 # vi /etc/nginx/proxy_params
 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;

Démarrer nginx

 # rc-service nginx start

Reconfigurer les autres conteneurs pour mettre la nouvelle adresse (fichier remoteip.conf) Sur chaque conteneur client : création du fichier /etc/apache2/conf.d/remoteip.conf avec :

 RemoteIPHeader X-Real-IP
 RemoteIPTrustedProxy 10.178.91.45 fd42:b9ca:1a60:95fc:216:3eff:fe71:850f

ou

 RemoteIPHeader X-Real-IP
 RemoteIPTrustedProxy proxy.lxd (nom du conteneur nginx, plus correct dans la configuration conteneurs)

modification de /etc/apache2/httpd.conf décommenter :

 LoadModule remoteip_module modules/mod_remoteip.so

relancer les services apache2

 # rc-service apache2 restart

Certbot

(cf. https://certbot.eff.org/instructions)

Création d'un environnement virtuel pour certbot

 # apk add python3 augeas-libs
 # python3 -m venv /opt/certbot/
 # /opt/certbot/bin/pip install --upgrade pip

Installer certbot dans l'environnement créé :

 # /opt/certbot/bin/pip install certbot certbot-nginx

Préparer la commande certbot :

 # ln -s /opt/certbot/bin/certbot /usr/bin/certbot

(Raspberry configuré pour écouter 80 et 443)

Configuration automatique d'nginx

 # certbot --nginx

Rem : on peut également ne générer qu'un certificat et configurer nginx à la main en lançant :

 # certbot certonly --nginx

Le processus demande

- une adresse mail
- l'acceptation des conditions générales d'utilisation
- l'autorisation d'envoiyer des infos par E-mail
- indiquer quels serveurs doivent être en HTTPS (se base sur le fichier de configuration d'nginx : proxy.conf ici)

Automatiser la mise à jour du certificat :

# echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" |  tee -a /etc/crontabs/root > /dev/null

ou éditer cron et ajouter : 0 0 1 */2 * certbot renew

  1. crontab -e

0 0 1 */2 * certbot renew -q (pour quiet) (vérifier si certbot ne fout pas le bordel dans le fichier de conf d'nginx : faire un fichier de sauvegarde fonctionnel...)


Ajouté automatiquement dans la conf de chaque redirection

 listen [::]:443 ssl ipv6only=on; # managed by Certbot
 listen 443 ssl; # managed by Certbot

ssl_certificate /etc/letsencrypt/live/lesitadom.fr/fullchain.pem; # managed by Certbot

 ssl_certificate_key /etc/letsencrypt/live/lesitadom.fr/privkey.pem; # managed by Certbot
 include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

Et pour chaque bloc serveur, la conf correspondante (redirection permanente)

 server {                                                                                    
   if ($host = lesitadom.fr) {                                                             
       return 301 
  https://$host$request_uri;                                               
   } # managed by Certbot                                                                  
                                                                                           
                                                                                           
       listen 80 proxy_protocol;                                                           
       listen [::]:80 proxy_protocol;                                                      
                                                                                           
       server_name lesitadom.fr;                                                           
   return 404; # managed by Certbot                                                        
}                     
 !!!! Certbot modifie le fichier de configuration d'nginx, mais ne met pas 'proxy_protocol' à la fin des directives d'écoute.
 ==>> ! il faut le rajouter à la main, sinon rien ne fonctionne et on est bon pour trois jours de recherche sur le net !!!!
 "Managed by Certbot" comme un con et codé avec les pieds !!!

Création d'un fichier /etc/nginx/le.conf avec :

   ssl_certificate /etc/letsencrypt/live/lesitadom.fr/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/lesitadom.fr/privkey.pem;
   include /etc/letsencrypt/options-ssl-nginx.conf;
   ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; 

et d'un fichier /etc/nginx/realip.conf avec :

 real_ip_header proxy_protocol;                                                          
 set_real_ip_from 127.0.0.1;

et les inclure dans chaque

 server {
     listen [::]:443 ssl ipv6only=on proxy_protocol;
     listen 443 ssl proxy_protocol;
         
     include /etc/nginx/le.conf;
     server_name toto.lesitadom.fr;
         location / {
         ...
         }
     include /etc/nginx/realip.conf;
 }

Tester la validité des certificats :

https://www.ssllabs.com/ssltest/index.html
 https://www.sslshopper.com/ssl-checker.html


Pour lister les certificats :

 # certbot certificates

pour lister les sous-domaines inclus :

 # certbot certificates --cert-name lesitadom.fr

Pour ajouter ou retirer un sous-domaine du certificat :

 # certbot certonly --cert-name <nom du certificat> -d <liste du domaine et des sous-domaines à inclure, séparés par ','>

Exemple :

 # certbot certonly --cert-name lesitadom.fr -d lesitadom.fr,bcd.lesitadom.fr,phpma.lesitadom.fr

(ne garde que le domaine principal et les sous-domaines 'bcd' et 'phpma')

Renouveler le certificat

Ajouter un sous-domaine pas possible, il faut préciser tous les sous-domaines à chaque fois (en rajoutant --expand, on met le certificat à jour ?) Exemple :

 # certbot certonly --expand --cert-name lesitadom.fr -d lesitadom.fr,bcd.lesitadom.fr,phpma.lesitadom.fr,[sous-domaines à ajouter séparés par une ',']

-> Choix 1 : Nginx web server -> Vérifier la mise à jour puis "u" (update) !!! Il peut être judicieux d'ajouter '--dry-run -v' pour simuler la commande en mode verbiage avant de lancer une commande effective...


                    • Procédure pour les sous-domaines *******************

1. Chez l'hébergeur, ajouter une zone dns de type CNAME pour le sous-domaine qui pointe vers le domaine principal. 2. Modifier le fichier de configuration de nginx pour prendre le sous-domaine en compte (server_name ...), redémarrer nginx. 3. Ajouter le sous-domaine au certificat letsencrypt existant (--expand)



Fichiers de configuration

/etc/nginx/http.d/proxy.conf (copie proxy.sav)

  1. _____________________________
  2. |
  3. Redirection http vers https |
  4. _____________________________|

server { listen 80 proxy_protocol; listen [::]:80 proxy_protocol;

server_name _; if ($host = lesitadom.fr) { return 301 https://$host$request_uri; }

   	if ($host = bcd.lesitadom.fr) {
       	return 301 https://$host$request_uri;
   	}
   	if ($host = pmb.lesitadom.fr) {
       	return 301 https://$host$request_uri;
   	}
   	if ($host = tables.lesitadom.fr) {
       	return 301 https://$host$request_uri;
   	}
   	if ($host = wiki.lesitadom.fr) {
       	return 301 https://$host$request_uri;
   	}
   	if ($host = wp.lesitadom.fr) {
       	return 301 https://$host$request_uri;
   	}

if ($request_uri = tables){ return 301 https://tables.lesitadom.fr; } if ($host = serveurdd.ddns.net) { return 301 https://lesitadom.fr$request_uri; } return 404; }

  1. ____________________________________________________
  2. |
  3. Conteneur Racine : lesitadom.fr -> serveur virtuel |
  4. ____________________________________________________|

server { listen [::]:443 ssl proxy_protocol; listen 443 ssl proxy_protocol;

include /etc/nginx/le.conf; include /etc/nginx/realip.conf;

server_name lesitadom.fr; location / {

              	proxy_pass http://192.168.1.21;
              	include /etc/nginx/proxy_params;
      	}

}

  1. ______________________________________________________
  2. |
  3. Conteneur PMB : bcd.lesitadom.fr -> pmb.lxd opac_css |
  4. ______________________________________________________|

server { listen [::]:443 ssl proxy_protocol; listen 443 ssl proxy_protocol;

include /etc/nginx/le.conf; include /etc/nginx/realip.conf;

server_name bcd.lesitadom.fr; location / { root /var/www/localhost/htdocs/opac_css; proxy_pass http://pmb.lxd; include /etc/nginx/proxy_params;

      	}

}

  1. ___________________________________________________
  2. |
  3. Conteneur PMB admin : pmb.lesitadom.fr -> pmb.lxd |
  4. ___________________________________________________|

server { listen [::]:443 ssl proxy_protocol; listen 443 ssl proxy_protocol;

include /etc/nginx/le.conf; include /etc/nginx/realip.conf;

server_name pmb.lesitadom.fr; location / { proxy_pass http://pmb.lxd; include /etc/nginx/proxy_params;

      	}

}

  1. ______________________________________________________
  2. |
  3. Conteneur Tables : tables.lesitadom.fr -> tables.lxd |
  4. ______________________________________________________|

server { listen [::]:443 ssl proxy_protocol; listen 443 ssl proxy_protocol;

include /etc/nginx/le.conf; include /etc/nginx/realip.conf;

server_name tables.lesitadom.fr; location / { proxy_pass http://tables.lxd; include /etc/nginx/proxy_params;

      	}

}

  1. _____________________________________________________
  2. |
  3. Conteneur Wikimedia : wiki.lesitadom.fr -> wiki.lxd |
  4. _____________________________________________________|

server { listen [::]:443 ssl proxy_protocol; listen 443 ssl proxy_protocol;

include /etc/nginx/le.conf; include /etc/nginx/realip.conf;

server_name wiki.lesitadom.fr; location / { proxy_pass http://wiki.lxd; include /etc/nginx/proxy_params;

      	}

}

  1. __________________________________________________
  2. |
  3. Conteneur Wordrpress : wp.lesitadom.fr -> wp.lxd |
  4. __________________________________________________|

server {

listen [::]:443 ssl proxy_protocol; listen 443 ssl proxy_protocol;

include /etc/nginx/le.conf; include /etc/nginx/realip.conf;

server_name wp.lesitadom.fr; location / { proxy_pass http://wp.lxd; include /etc/nginx/proxy_params;

      	}

}

**************************************** /etc/nginx/le.conf ssl_certificate /etc/letsencrypt/live/lesitadom.fr/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/lesitadom.fr/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

**************************************** /etc/nginx/realip.conf real_ip_header proxy_protocol; set_real_ip_from 127.0.0.1;

**************************************** /etc/nginx/proxy_params proxy_redirect off; 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;

****************************************