====== Configurer Nginx pour GeoNature Atlas ====== * **Notes** : nous voulons une adresse web principal de type //.// pour l'Atlas. L'adress //atlas.// doit être redirigé vers //.//. * Créer un fichier de config Nginx pour l'Atlas : ''vi /etc/nginx/sites-available/atlas.conf'' * Y placer le contenu suivant : server { listen 80; listen [::]:80; server_name .; location / { proxy_set_header X-Forwarded-Host $host:$server_port; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:8080/;# ATTENTION : bien mettre un slash final ! Sinon => erreur 404 } } * Créer un lien depuis les sites actifs : ''cd /etc/nginx/sites-enabled/ ; ln -s ../sites-available/atlas.conf atlas.conf'' * Tester la config et relancer Nginx si OK : ''nginx -t && nginx -s reload'' * Tester l'URL http://./ qui doit afficher une erreur 502 si le serveur Gunicorn de l'Atlas n'est pas lancé. * Vérifier le service : ''systemctl status geonature-atlas.service'' * Démarrer le service Atlas : ''systemctl start geonature-atlas.service'' * Arrêter le service Atlas : ''systemctl stop geonature-atlas.service'' * Installer un certificat SSL via Certbot (Letsencrypt) : ''certbot --nginx -d . -d atlas.'' * Ex. SINP PACA : '' certbot --nginx -d nature.silene.eu -d atlas.silene.eu '' * Ex. SINP AURA : certbot --nginx \ -d atlas.biodiversite-auvergne-rhone-alpes.fr \ -d atlas.biodiversite-auvergne-rhone-alpes.com \ -d atlas.biodiversite-auvergne-rhone-alpes.eu \ -d atlas.biodiversite-auvergne-rhone-alpes.net \ -d atlas.biodiversite-auvergne-rhone-alpes.org \ -d atlas.biodiversite-aura.com \ -d atlas.biodiversite-aura.eu \ -d atlas.biodiversite-aura.fr \ -d atlas.biodiversite-aura.net \ -d atlas.biodiversite-aura.org \ -d atlas.observatoire-biodiversite-auvergne-rhone-alpes.com \ -d atlas.observatoire-biodiversite-auvergne-rhone-alpes.eu \ -d atlas.observatoire-biodiversite-auvergne-rhone-alpes.fr \ -d atlas.observatoire-biodiversite-auvergne-rhone-alpes.net \ -d atlas.observatoire-biodiversite-auvergne-rhone-alpes.org * Répondre : 2 * Tester ensuite la redirection auto de HTTP vers HTTPS : http://./ -> doit redirigé vers HTTPS automatiquement * Tester la configuration SSL : https://www.ssllabs.com/ssltest/analyze.html?d=. * Tester l'URL https://./ * La config finale : server { listen 443 ssl http2; # managed by Certbot listen [::]:443 ssl http2; # managed by Certbot server_name .; auth_basic "Zone restreinte"; auth_basic_user_file /etc/nginx/.htpasswd; location / { proxy_set_header X-Forwarded-Host $host:$server_port; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # WARNING: up timeout to 90s to avoid 502 Bad Gateway response # Set timeout like Gunicorn in GeoNature-Atlas atlas/configuration/settings.ini file proxy_read_timeout 90s; proxy_connect_timeout 30s; proxy_pass http://127.0.0.1:8080/;# ATTENTION : bien mettre un slash final ! Sinon => erreur 404 } ssl_certificate /etc/letsencrypt/live/./fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/./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 } server { listen 443 ssl; listen [::]:443 ssl; server_name atlas.; ssl_certificate /etc/letsencrypt/live/./fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/./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 return 302 https://.$request_uri; } server { listen 80; listen [::]:80; server_name . atlas.; return 302 https://.$request_uri; } * Penser à modifier le fichier //config.py// pour y indiquer la nouvelle URL en HTTPS : ''vi ~/www/atlas/atlas/configuration/config.py''