115 lines
4.5 KiB
Plaintext
115 lines
4.5 KiB
Plaintext
# Configuration nginx de référence pour colibre.fr + migration decp.info.
|
|
#
|
|
# Installation (sur le serveur, en root) :
|
|
# cp deploy/nginx-colibre.conf /etc/nginx/sites-available/colibre
|
|
# ln -s /etc/nginx/sites-available/colibre /etc/nginx/sites-enabled/colibre
|
|
# nginx -t && systemctl reload nginx
|
|
#
|
|
# Les certificats TLS sont gérés par certbot (Let's Encrypt) :
|
|
# certbot --nginx -d colibre.fr -d www.colibre.fr -d decp.info -d www.decp.info
|
|
# Obtenir/installer les certificats AVANT d'activer les redirections 301 :
|
|
# une 301 vers un https cassé est mise en cache par les navigateurs/Google.
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# 1. Migration decp.info → colibre.fr (301 permanentes, chemin préservé)
|
|
# La structure d'URL est identique entre les deux domaines (rebranding),
|
|
# donc $request_uri suffit : /acheteurs/123 → https://colibre.fr/acheteurs/123.
|
|
# On NE redirige PAS vers la home : chaque ancienne URL garde son équivalent,
|
|
# ce qui transfère l'autorité SEO page par page.
|
|
# ---------------------------------------------------------------------------
|
|
server {
|
|
listen 80;
|
|
listen [::]:80;
|
|
server_name decp.info www.decp.info;
|
|
# Laisser certbot répondre aux challenges ACME avant la redirection.
|
|
location /.well-known/acme-challenge/ { root /var/www/certbot; }
|
|
location / { return 301 https://colibre.fr$request_uri; }
|
|
}
|
|
|
|
server {
|
|
listen 443 ssl;
|
|
listen [::]:443 ssl;
|
|
server_name decp.info www.decp.info;
|
|
|
|
ssl_certificate /etc/letsencrypt/live/colibre.fr/fullchain.pem;
|
|
ssl_certificate_key /etc/letsencrypt/live/colibre.fr/privkey.pem;
|
|
|
|
return 301 https://colibre.fr$request_uri;
|
|
}
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# 1b. Migration test.decp.info → test.colibre.fr (302 temporaire, chemin
|
|
# préservé). Contrairement à la prod (section 1), on reste en 302 tant
|
|
# que l'environnement de test est susceptible de bouger, pour ne pas
|
|
# risquer un cache navigateur/moteur sur une redirection qui n'est pas
|
|
# encore définitive.
|
|
# Nécessite un certificat couvrant test.colibre.fr (et test.decp.info
|
|
# pour le vhost 443 ci-dessous), par ex. :
|
|
# certbot --nginx -d test.colibre.fr -d test.decp.info
|
|
# ---------------------------------------------------------------------------
|
|
server {
|
|
listen 80;
|
|
listen [::]:80;
|
|
server_name test.decp.info;
|
|
location /.well-known/acme-challenge/ { root /var/www/certbot; }
|
|
location / { return 302 https://test.colibre.fr$request_uri; }
|
|
}
|
|
|
|
server {
|
|
listen 443 ssl;
|
|
listen [::]:443 ssl;
|
|
server_name test.decp.info;
|
|
|
|
ssl_certificate /etc/letsencrypt/live/test.colibre.fr/fullchain.pem;
|
|
ssl_certificate_key /etc/letsencrypt/live/test.colibre.fr/privkey.pem;
|
|
|
|
return 302 https://test.colibre.fr$request_uri;
|
|
}
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# 2. www.colibre.fr → colibre.fr (canonicalisation : un seul hôte indexé)
|
|
# ---------------------------------------------------------------------------
|
|
server {
|
|
listen 80;
|
|
listen [::]:80;
|
|
server_name colibre.fr www.colibre.fr;
|
|
location /.well-known/acme-challenge/ { root /var/www/certbot; }
|
|
location / { return 301 https://colibre.fr$request_uri; }
|
|
}
|
|
|
|
server {
|
|
listen 443 ssl;
|
|
listen [::]:443 ssl;
|
|
server_name www.colibre.fr;
|
|
|
|
ssl_certificate /etc/letsencrypt/live/colibre.fr/fullchain.pem;
|
|
ssl_certificate_key /etc/letsencrypt/live/colibre.fr/privkey.pem;
|
|
|
|
return 301 https://colibre.fr$request_uri;
|
|
}
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# 3. Hôte canonique : https://colibre.fr → application Dash (gunicorn)
|
|
# ---------------------------------------------------------------------------
|
|
server {
|
|
listen 443 ssl;
|
|
listen [::]:443 ssl;
|
|
server_name colibre.fr;
|
|
|
|
ssl_certificate /etc/letsencrypt/live/colibre.fr/fullchain.pem;
|
|
ssl_certificate_key /etc/letsencrypt/live/colibre.fr/privkey.pem;
|
|
|
|
# Le sitemap acheteurs/titulaires peut être volumineux : autoriser de
|
|
# gros corps de réponse en proxy et des timeouts généreux.
|
|
proxy_read_timeout 120s;
|
|
|
|
location / {
|
|
# gunicorn app:server — adapter le bind à l'unit systemd colibre.
|
|
proxy_pass http://127.0.0.1:8000;
|
|
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;
|
|
}
|
|
}
|