« Proxy » : différence entre les versions
| (9 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
---- | ---- | ||
'''<big>Installation de nginx et de certbot dans un conteneur Alpine léger</big>''' | |||
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 !) | ||
=Création du conteneur et installation d'Nginx= | |||
Création et mise à jour du conteneur : | |||
lxc launch proxy locale:alpineLe | lxc launch proxy locale:alpineLe | ||
lxc exec proxy apk update | lxc exec proxy apk update | ||
lxc exec proxy apk upgrade | lxc exec proxy apk upgrade | ||
Installation de nginx | Installation de nginx et démarrage auto du service : | ||
lxc exec proxy apk add nginx | lxc exec proxy apk add nginx | ||
lxc exec proxy rc-update add nginx | lxc exec proxy 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 : | ||
lxc shell proxy | lxc shell proxy | ||
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 | ||
Créer les fichiers de configuration | Créer les fichiers de configuration : <br> | ||
:* /etc/nginx/'''le.conf''' | :* /etc/nginx/[[#le.conf|'''le.conf''']] | ||
:* /etc/nginx/'''realip.conf''' | :* /etc/nginx/[[#realip.conf|'''realip.conf''']] | ||
:* /etc/nginx/'''proxy_params''' | :* /etc/nginx/[[#proxy_params|'''proxy_params''']] | ||
Configurer les redirections (voir fichier complet plus bas) | Configurer les redirections (voir fichier complet [[#proxy.conf|plus bas]]) : | ||
vi /etc/nginx/http.d/'''proxy.conf''' | vi /etc/nginx/http.d/'''proxy.conf''' | ||
| Ligne 40 : | Ligne 39 : | ||
location / { | location / { | ||
include /etc/nginx/proxy_params; | include /etc/nginx/proxy_params; | ||
proxy_pass http://tables.lxd; | proxy_pass <nowiki>http://tables.lxd</nowiki>; | ||
} | } | ||
| Ligne 63 : | Ligne 62 : | ||
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 : | ||
<div class="toccolours mw-collapsible mw-collapsed"> | |||
/etc/apache2/conf.d/'''remoteip.conf''' | |||
<div class="mw-collapsible-content"> | |||
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 | ||
</div></div> | |||
Pour une configuration en mode conteneur : | Pour une configuration en mode conteneur : | ||
<div class="toccolours mw-collapsible mw-collapsed"> | |||
/etc/apache2/conf.d/'''remoteip.conf''' | |||
<div class="mw-collapsible-content"> | |||
RemoteIPHeader X-Real-IP | RemoteIPHeader X-Real-IP | ||
RemoteIPTrustedProxy proxy.lxd | RemoteIPTrustedProxy proxy.lxd | ||
</div></div> | |||
Modification de /etc/apache2/httpd.conf | Modification de /etc/apache2/httpd.conf | ||
décommenter : | décommenter : | ||
| Ligne 76 : | Ligne 80 : | ||
Relancer les services apache2 | Relancer les services apache2 | ||
rc-service apache2 restart | |||
---- | ---- | ||
=Certificats Let'sEncrypt avec Certbot= | |||
(cf. https://certbot.eff.org/instructions) | (cf. https://certbot.eff.org/instructions) | ||
| Ligne 119 : | Ligne 123 : | ||
{{replier | Si on choisit la configuration automatique (à éviter si possible)}} | {{replier | Si on choisit la configuration automatique (à éviter si possible)}} | ||
==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 | ||
| Ligne 146 : | Ligne 150 : | ||
{{replier fin}} | {{replier fin}} | ||
==Avec '# certbot certonly --nginx'== | |||
Inclure le.conf et realip.conf dans chaque | Inclure le.conf et realip.conf dans chaque | ||
| Ligne 167 : | Ligne 171 : | ||
https://www.sslshopper.com/ssl-checker.html | https://www.sslshopper.com/ssl-checker.html | ||
==Commandes utiles== | |||
Pour '''lister''' les certificats : | Pour '''lister''' les certificats : | ||
# certbot certificates | # certbot certificates | ||
| Ligne 192 : | Ligne 196 : | ||
=Procédure pour les sous-domaines= | |||
# Chez l'hébergeur, ajouter une zone dns de type CNAME pour le sous-domaine qui pointe vers le domaine principal. | # Chez l'hébergeur, ajouter une zone dns de type CNAME pour le sous-domaine qui pointe vers le domaine principal. | ||
| Ligne 198 : | Ligne 202 : | ||
# Ajouter le sous-domaine au certificat letsencrypt existant (--expand) | # Ajouter le sous-domaine au certificat letsencrypt existant (--expand) | ||
=Fichiers de configuration= | |||
==proxy.conf== | |||
/etc/nginx/http.d/proxy.conf (copie proxy.sav) | /etc/nginx/http.d/proxy.conf (copie proxy.sav) | ||
#_____________________________ | #_____________________________ | ||
| Ligne 211 : | Ligne 215 : | ||
server_name .lesitadom.fr; | server_name .lesitadom.fr; | ||
return 301 https://$host$request_uri; | return 301 <nowiki>https://$host$request_uri</nowiki>; | ||
server_name serveurdd.ddns.net; | server_name serveurdd.ddns.net; | ||
return 301 https://$host$request_uri; | return 301 <nowiki>https://$host$request_uri</nowiki>; | ||
server_name les-bosquets.fr; | server_name les-bosquets.fr; | ||
return 301 https://$host$request_uri; | return 301 <nowiki>https://$host$request_uri</nowiki>; | ||
} | } | ||
| Ligne 234 : | Ligne 238 : | ||
server_name lesitadom.fr; | server_name lesitadom.fr; | ||
location /phpma { | location /phpma { | ||
return 302 https://phpma.lesitadom.fr; | return 302 <nowiki>https://phpma.lesitadom.fr</nowiki>; | ||
} | } | ||
location /phpmyadmin { | location /phpmyadmin { | ||
return 302 https://phpma.lesitadom.fr; | return 302 <nowiki>https://phpma.lesitadom.fr</nowiki>; | ||
} | } | ||
location /wordpress { | location /wordpress { | ||
return 302 https://wp.lesitadom.fr; | return 302 <nowiki>https://wp.lesitadom.fr</nowiki>; | ||
} | } | ||
location /wp { | location /wp { | ||
return 302 https://wp.lesitadom.fr; | return 302 <nowiki>https://wp.lesitadom.fr</nowiki>; | ||
} | } | ||
location /mediawiki { | location /mediawiki { | ||
return 302 https://wiki.lesitadom.fr; | return 302 <nowiki>https://wiki.lesitadom.fr</nowiki>; | ||
} | } | ||
location /wiki { | location /wiki { | ||
return 302 https://wiki.lesitadom.fr; | return 302 <nowiki>https://wiki.lesitadom.fr</nowiki>; | ||
} | } | ||
location /pmb { | location /pmb { | ||
return 302 https://pmb.lesitadom.fr; | return 302 <nowiki>https://pmb.lesitadom.fr</nowiki>; | ||
} | } | ||
location /bcd { | location /bcd { | ||
return 302 https://pmb.lesitadom.fr/opac_css; | return 302 <nowiki>https://pmb.lesitadom.fr/opac_css</nowiki>; | ||
} | } | ||
location /tables { | location /tables { | ||
return 302 https://tables.lesitadom.fr; | return 302 <nowiki>https://tables.lesitadom.fr</nowiki>; | ||
} | } | ||
location / { | location / { | ||
proxy_pass http://192.168.1.21; | proxy_pass <nowiki>http://192.168.1.21</nowiki>; | ||
include /etc/nginx/proxy_params; | include /etc/nginx/proxy_params; | ||
} | } | ||
location /*{ | location /*{ | ||
return 404; | return 404; | ||
} | |||
} | } | ||
#________________________________________________________ | #________________________________________________________ | ||
| Ligne 289 : | Ligne 294 : | ||
location /phpmyadmin { | location /phpmyadmin { | ||
proxy_pass http://phpma.lxd; | proxy_pass <nowiki>http://phpma.lxd</nowiki>; | ||
include /etc/nginx/proxy_params; | include /etc/nginx/proxy_params; | ||
} | } | ||
| Ligne 307 : | Ligne 312 : | ||
server_name bcd.lesitadom.fr; | server_name bcd.lesitadom.fr; | ||
location / { | location / { | ||
return 302 https://pmb.lesitadom.fr/opac_css/; | return 302 <nowiki>https://pmb.lesitadom.fr/opac_css/</nowiki>; | ||
} | } | ||
} | } | ||
| Ligne 325 : | Ligne 330 : | ||
server_name pmb.lesitadom.fr pmb.les-bosquets.fr; | server_name pmb.lesitadom.fr pmb.les-bosquets.fr; | ||
location / { | location / { | ||
proxy_pass http://pmb.lxd; | proxy_pass <nowiki>http://pmb.lxd</nowiki>; | ||
include /etc/nginx/proxy_params; | include /etc/nginx/proxy_params; | ||
} | } | ||
| Ligne 344 : | Ligne 349 : | ||
server_name tables.lesitadom.fr tables.les-bosquets.fr; | server_name tables.lesitadom.fr tables.les-bosquets.fr; | ||
location / { | location / { | ||
proxy_pass http://tables.lxd; | proxy_pass <nowiki>http://tables.lxd</nowiki>; | ||
include /etc/nginx/proxy_params; | include /etc/nginx/proxy_params; | ||
} | } | ||
| Ligne 363 : | Ligne 368 : | ||
server_name wiki.lesitadom.fr; | server_name wiki.lesitadom.fr; | ||
location / { | location / { | ||
proxy_pass http://wiki.lxd; | proxy_pass <nowiki>http://wiki.lxd</nowiki>; | ||
include /etc/nginx/proxy_params; | include /etc/nginx/proxy_params; | ||
} | } | ||
| Ligne 383 : | Ligne 388 : | ||
server_name wp.lesitadom.fr; | server_name wp.lesitadom.fr; | ||
location / { | location / { | ||
proxy_pass http://wp.lxd; | proxy_pass <nowiki>http://wp.lxd</nowiki>; | ||
include /etc/nginx/proxy_params; | include /etc/nginx/proxy_params; | ||
} | } | ||
| Ligne 400 : | Ligne 405 : | ||
server_name serveurdd.ddns.net; | server_name serveurdd.ddns.net; | ||
if ($request_uri = /tables){ | if ($request_uri = /tables){ | ||
return 301 https://tables.lesitadom.fr; | return 301 <nowiki>https://tables.lesitadom.fr</nowiki>; | ||
} | } | ||
if ($request_uri = /pmb){ | if ($request_uri = /pmb){ | ||
return 301 https://pmb.lesitadom.fr/opac_css/; | return 301 <nowiki>https://pmb.lesitadom.fr/opac_css/</nowiki>; | ||
} | } | ||
if ($request_uri = /pmb/admin.php){ | if ($request_uri = /pmb/admin.php){ | ||
return 301 https://pmb.lesitadom.fr; | return 301 <nowiki>https://pmb.lesitadom.fr</nowiki>; | ||
} | } | ||
if ($request_uri = /pmb/opac_css/index.php){ | if ($request_uri = /pmb/opac_css/index.php){ | ||
return 301 https://pmb.lesitadom.fr/opac_css/; | return 301 <nowiki>https://pmb.lesitadom.fr/opac_css/</nowiki>; | ||
} | } | ||
if ($request_uri = /mediawiki){ | if ($request_uri = /mediawiki){ | ||
return 301 https://wiki.lesitadom.fr; | return 301 <nowiki>https://wiki.lesitadom.fr</nowiki>; | ||
} | } | ||
return 301 https://lesitadom.fr; | return 301 <nowiki>https://lesitadom.fr</nowiki>; | ||
} | } | ||
| Ligne 433 : | Ligne 438 : | ||
server_name les-bosquets.fr; | server_name les-bosquets.fr; | ||
if ($request_uri = /tables){ | if ($request_uri = /tables){ | ||
return 302 https://tables.les-bosquets.fr; | return 302 <nowiki>https://tables.les-bosquets.fr</nowiki>; | ||
} | } | ||
if ($request_uri = /pmb){ | if ($request_uri = /pmb){ | ||
return 302 https://pmb.les-bosquets.fr/opac_css/; | return 302 <nowiki>https://pmb.les-bosquets.fr/opac_css/</nowiki>; | ||
} | } | ||
if ($request_uri = /adminbcd){ | if ($request_uri = /adminbcd){ | ||
return 302 https://pmb.les-bosquets.fr; | return 302 <nowiki>https://pmb.les-bosquets.fr</nowiki>; | ||
} | } | ||
if ($request_uri = /pmb/opac_css/index.php){ | if ($request_uri = /pmb/opac_css/index.php){ | ||
return 302 https://pmb.les-bosquets.fr/opac_css/; | return 302 <nowiki>https://pmb.les-bosquets.fr/opac_css/</nowiki>; | ||
} | } | ||
return 302 https://pmb.les-bosquets.fr/opac_css; | return 302 <nowiki>https://pmb.les-bosquets.fr/opac_css</nowiki>; | ||
} | } | ||
==le.conf== | |||
/etc/nginx/le.conf | /etc/nginx/'''le.conf''' | ||
ssl_certificate /etc/letsencrypt/live/lesitadom.fr/fullchain.pem; | ssl_certificate /etc/letsencrypt/live/lesitadom.fr/fullchain.pem; | ||
ssl_certificate_key /etc/letsencrypt/live/lesitadom.fr/privkey.pem; | ssl_certificate_key /etc/letsencrypt/live/lesitadom.fr/privkey.pem; | ||
include /etc/letsencrypt/options-ssl-nginx.conf; | include /etc/letsencrypt/options-ssl-nginx.conf; | ||
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; | ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; | ||
==realip.conf== | |||
/etc/nginx/realip.conf | /etc/nginx/'''realip.conf''' | ||
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; | ||
==proxy_params== | |||
/etc/nginx/proxy_params | /etc/nginx/'''proxy_params''' | ||
proxy_redirect off; | proxy_redirect off; | ||
proxy_set_header Host $host; | proxy_set_header Host $host; | ||
Dernière version du 14 mai 2025 à 14:04
Installation de 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 !)
Création du conteneur et installation d'Nginx
Création et mise à jour du conteneur :
lxc launch proxy locale:alpineLe lxc exec proxy apk update lxc exec proxy apk upgrade
Installation de nginx et démarrage auto du service :
lxc exec proxy apk add nginx lxc exec proxy 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 :
lxc shell proxy mv /etc/nginx/http.d/default.conf /etc/nginx/http.d/default.conf.sav
Créer les fichiers de configuration :
- /etc/nginx/le.conf
- /etc/nginx/realip.conf
- /etc/nginx/proxy_params
Configurer les 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;
}
include /etc/nginx/realip.conf;
}
...etc
À l'usage, le module H5P de wordpress rame. Il semble qu'il faille charger le module de compression zip et configurer nginx :
apk add nginx-mod-http-zip
Dans le fichier /etc/nginx/nginx.conf, ajouter :
gzip on; gzip_types text/plain text/css application/json application/javascript application/xml application/xhtml+xml image/svg+xml; gzip_comp_level 5; gzip_vary on; gzip_min_length 1000;
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 :
/etc/apache2/conf.d/remoteip.conf
RemoteIPHeader X-Real-IP RemoteIPTrustedProxy 10.178.91.45 fd42:b9ca:1a60:95fc:216:3eff:fe71:850f
Pour une configuration en mode conteneur :
/etc/apache2/conf.d/remoteip.conf
RemoteIPHeader X-Real-IP RemoteIPTrustedProxy proxy.lxd
Modification de /etc/apache2/httpd.conf décommenter :
LoadModule remoteip_module modules/mod_remoteip.so
Relancer les services apache2
rc-service apache2 restart
Certificats Let'sEncrypt avec 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 est configuré pour écouter 80 et 443)
Configuration automatique d'nginx
# certbot --nginx
Remarque : On peut également ne générer qu'un certificat et configurer nginx à la main en lançant :
# certbot certonly --nginx
Cette procédure est préférable. Elle evite de voir Certbot mettre le bazar dans le fichier de configuration d'nginx.
Le processus demande
- une adresse mail - l'acceptation des conditions générales d'utilisation - l'autorisation d'envoyer des infos par E-mail - indiquer quels serveurs doivent être en HTTPS (se base sur le fichier de configuration de 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 # 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 avant...)
| Si on choisit la configuration automatique (à éviter si possible) |
|---|
Ajouté automatiquement dans la conf de chaque redirectionlisten [::]: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 recherches sur le net !!!! "Managed by Certbot" comme un con et codé avec les pieds !!! |
Avec '# certbot certonly --nginx'
Inclure le.conf et realip.conf 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;
}
Pour tester la validité des certificats :
https://www.ssllabs.com/ssltest/index.html https://www.sslshopper.com/ssl-checker.html
Commandes utiles
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 Impossible simplement, 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
- Chez l'hébergeur, ajouter une zone dns de type CNAME pour le sous-domaine qui pointe vers le domaine principal.
- Modifier le fichier de configuration de nginx pour prendre le sous-domaine en compte (server_name ...), redémarrer nginx.
- Ajouter le sous-domaine au certificat letsencrypt existant (--expand)
Fichiers de configuration
proxy.conf
/etc/nginx/http.d/proxy.conf (copie proxy.sav)
#_____________________________
# |
# Redirection http vers https |
#_____________________________|
server {
listen 80 proxy_protocol;
listen [::]:80 proxy_protocol;
server_name .lesitadom.fr;
return 301 https://$host$request_uri;
server_name serveurdd.ddns.net;
return 301 https://$host$request_uri;
server_name les-bosquets.fr;
return 301 https://$host$request_uri;
}
#______________________________________________________
# |
# Réécriture pour phpmyadmin, wordpress, tables et pmb |
#______________________________________________________|
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 /phpma {
return 302 https://phpma.lesitadom.fr;
}
location /phpmyadmin {
return 302 https://phpma.lesitadom.fr;
}
location /wordpress {
return 302 https://wp.lesitadom.fr;
}
location /wp {
return 302 https://wp.lesitadom.fr;
}
location /mediawiki {
return 302 https://wiki.lesitadom.fr;
}
location /wiki {
return 302 https://wiki.lesitadom.fr;
}
location /pmb {
return 302 https://pmb.lesitadom.fr;
}
location /bcd {
return 302 https://pmb.lesitadom.fr/opac_css;
}
location /tables {
return 302 https://tables.lesitadom.fr;
}
location / {
proxy_pass http://192.168.1.21;
include /etc/nginx/proxy_params;
}
location /*{
return 404;
}
}
#________________________________________________________
# |
# Conteneur phpMyAdmin : phpma.lesitadom.fr -> phpma.lxd |
#________________________________________________________|
server {
listen [::]:443 ssl proxy_protocol;
listen 443 ssl proxy_protocol;
allow 192.168.1.0/24;
deny all;
include /etc/nginx/le.conf;
include /etc/nginx/realip.conf;
server_name phpma.lesitadom.fr;
location / {
rewrite ^/$ /phpmyadmin last;
}
location /phpmyadmin {
proxy_pass http://phpma.lxd;
include /etc/nginx/proxy_params;
}
}
#______________________________________________________
# |
# Conteneur PMB : bcd.lesitadom.fr -> pmb.lxd opac_css |
#______________________________________________________|
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 / {
return 302 https://pmb.lesitadom.fr/opac_css/;
}
}
#___________________________________________________
# |
# Conteneur PMB admin : pmb.lesitadom.fr -> pmb.lxd |
#___________________________________________________|
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 pmb.les-bosquets.fr;
location / {
proxy_pass http://pmb.lxd;
include /etc/nginx/proxy_params;
}
}
#______________________________________________________
# |
# Conteneur Tables : tables.lesitadom.fr -> tables.lxd |
#______________________________________________________|
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 tables.les-bosquets.fr;
location / {
proxy_pass http://tables.lxd;
include /etc/nginx/proxy_params;
}
}
#_____________________________________________________
# |
# Conteneur Wikimedia : wiki.lesitadom.fr -> wiki.lxd |
#_____________________________________________________|
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;
}
}
#__________________________________________________
# |
# Conteneur Wordrpress : wp.lesitadom.fr -> wp.lxd |
#__________________________________________________|
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;
}
}
#___________________________________________________
# |
# Redirection de serveurdd.ddns.net -> lesitadom.fr |
#___________________________________________________|
server {
listen [::]:443 ssl proxy_protocol;
listen 443 ssl proxy_protocol;
server_name serveurdd.ddns.net;
if ($request_uri = /tables){
return 301 https://tables.lesitadom.fr;
}
if ($request_uri = /pmb){
return 301 https://pmb.lesitadom.fr/opac_css/;
}
if ($request_uri = /pmb/admin.php){
return 301 https://pmb.lesitadom.fr;
}
if ($request_uri = /pmb/opac_css/index.php){
return 301 https://pmb.lesitadom.fr/opac_css/;
}
if ($request_uri = /mediawiki){
return 301 https://wiki.lesitadom.fr;
}
return 301 https://lesitadom.fr;
}
#________________________________________________
# |
# Redirection de les-bosquets.fr -> lesitadom.fr |
#________________________________________________|
server {
listen [::]:443 ssl proxy_protocol;
listen 443 ssl proxy_protocol;
server_name les-bosquets.fr;
if ($request_uri = /tables){
return 302 https://tables.les-bosquets.fr;
}
if ($request_uri = /pmb){
return 302 https://pmb.les-bosquets.fr/opac_css/;
}
if ($request_uri = /adminbcd){
return 302 https://pmb.les-bosquets.fr;
}
if ($request_uri = /pmb/opac_css/index.php){
return 302 https://pmb.les-bosquets.fr/opac_css/;
}
return 302 https://pmb.les-bosquets.fr/opac_css;
}
le.conf
/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;
realip.conf
/etc/nginx/realip.conf
real_ip_header proxy_protocol; set_real_ip_from 127.0.0.1;
proxy_params
/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;