Files
colibre/deploy/nginx-colibre.conf
T
2026-07-02 16:49:03 +02:00

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;
}
}