Nginx & Reverse Proxy¶
Rôle de Nginx dans l'architecture¶
Nginx joue le rôle de reverse proxy : il reçoit toutes les requêtes entrantes et les redirige vers le bon service selon le nom de domaine.
graph TD
Internet([🌐 Internet]) --> NG[Nginx\nReverse Proxy\nPort 80 / 443]
NG -->|darewatchgroup.com| G[drwh_group\nPort 3001]
NG -->|tech.darewatchgroup.com| T[drwh_tech\nPort 3003]
NG -->|immo.darewatchgroup.com| I[drwh_immo\nPort 3002]
NG -->|HTTP 80| REDIR[Redirection\nvers HTTPS 443]
REDIR --> NG
style Internet fill:#e8f4f8
style NG fill:#2d2e2e,color:#fff
style G fill:#e74c3c,color:#fff
style T fill:#0066FF,color:#fff
style I fill:#27ae60,color:#fff
style REDIR fill:#f39c12,color:#fff
Fichiers de configuration¶
infra/nginx/
├── nginx.conf ← Configuration globale Nginx
├── conf.d/
│ ├── drwh_group.conf ← Virtual host pour drwh_group
│ ├── drwh_tech.conf ← Virtual host pour drwh_tech
│ └── drwh_immo.conf ← Virtual host pour drwh_immo
├── certs/
│ ├── fullchain.pem ← Certificat TLS
│ └── privkey.pem ← Clé privée TLS
└── www/
└── .well-known/
└── acme-challenge/ ← Webroot pour Let's Encrypt
Configuration d'un virtual host¶
Exemple de configuration pour drwh_tech :
# infra/nginx/conf.d/drwh_tech.conf
# Redirection HTTP → HTTPS
server {
listen 80;
server_name tech.darewatchgroup.com;
# Pour Let's Encrypt
location /.well-known/acme-challenge/ {
root /var/www/acme;
}
location / {
return 301 https://$host$request_uri;
}
}
# HTTPS
server {
listen 443 ssl http2;
server_name tech.darewatchgroup.com;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
# Proxy vers le conteneur drwh_tech
location / {
proxy_pass http://drwhtch_tech:3003;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_cache_bypass $http_upgrade;
}
}
Routing par domaine¶
flowchart LR
A[darewatchgroup.com] -->|Nginx route| G[drwh_group:3001]
B[tech.darewatchgroup.com] -->|Nginx route| T[drwhtch_tech:3003]
C[immo.darewatchgroup.com] -->|Nginx route| I[drwh_immo:3002]
style G fill:#e74c3c,color:#fff
style T fill:#0066FF,color:#fff
style I fill:#27ae60,color:#fff
Gestion des noms de domaine et sous-domaines¶
DNS — Pointage vers le serveur¶
Pour que vos domaines pointent vers votre serveur, configurez les enregistrements DNS chez votre registrar :
| Type | Nom | Valeur | TTL |
|---|---|---|---|
A |
darewatchgroup.com |
IP de votre serveur | 300 |
A |
tech.darewatchgroup.com |
IP de votre serveur | 300 |
A |
immo.darewatchgroup.com |
IP de votre serveur | 300 |
A |
www.immo.darewatchgroup.com |
IP de votre serveur | 300 |
Trouver l'IP de votre serveur
Votre hébergeur (OVH, DigitalOcean…) vous fournit l'adresse IP dans le tableau de bord de votre VPS.
Propagation DNS¶
Après modification des DNS, la propagation peut prendre de quelques minutes à 48 heures.
Renouvellement automatique des certificats TLS¶
En production, configurez un cron pour renouveler automatiquement les certificats :
# Vérifier le renouvellement (dans crontab)
0 3 * * * certbot renew --quiet && docker compose restart drwh_gateway