Ce que ce générateur vous donne
Si vous avez déjà ouvert un fichier `.conf` vide sous `/etc/nginx/sites-available/` en vous demandant par où commencer, cet outil est pour vous. Il écrit le server-block entier pour les cinq choses que les gens font vraiment avec nginx : servir un site statique, mettre un reverse proxy devant une app, lancer une redirection propre, héberger un sous-domaine, ou répartir le trafic sur plusieurs backends avec un load balancer.
Choisissez un mode en haut, remplissez un domaine et un backend, basculez les switches pour SSL, gzip, WebSockets et Cloudflare. Le panneau de droite montre le texte exact que vous collez dans nginx, indenté et stylé comme une vraie config. Copier ou Télécharger comme `<votre-domaine>.conf`.
Tout tourne dans votre navigateur. Aucun domaine n'est résolu, aucun cert n'est émis, rien n'est uploadé. La sortie est de la syntaxe nginx pure, identique à ce que vous taperiez à la main si vous aviez mémorisé chaque directive.
Mode d'emploi
- Choisissez un mode en haut : *Site statique*, *Reverse proxy*, *Redirection*, *Sous-domaine* ou *Load balancer*. Chaque mode ne montre que les champs qui comptent pour lui.
- Tapez vos domaines dans server_name. Un domaine par ligne. Le premier est utilisé comme nom de certificat.
- Choisissez le port listen. 80 pour HTTP simple, 443 pour HTTPS, 8080 quand un proxy upstream ou Docker gère le TLS.
- Activez Ajouter le bloc SSL pour câbler les chemins Let's Encrypt (`/etc/letsencrypt/live/<domain>/fullchain.pem`). Laissez Ajouter la redirection HTTP vers HTTPS activée pour que les visiteurs HTTP simples soient renvoyés vers https avec un `301`.
- Pour le Reverse proxy : mettez proxy_pass vers votre backend, par exemple `http://127.0.0.1:3000`. Gardez les en-têtes X-Forwarded- activés pour que votre app voie la vraie IP client.
- Pour le Load balancer : collez un `address:port` par ligne dans *Serveurs backend* et choisissez un algorithme. Utilisez les groupes upstream avec `least_conn` pour les apps lentes et `ip_hash` quand vous avez besoin de sessions sticky.
- Si votre app utilise des WebSockets (Socket.IO, Phoenix Channels, etc.) activez Ajouter les en-têtes Upgrade WebSocket. Si vous mettez Cloudflare devant nginx, activez Ajouter Cloudflare real IP pour que les logs montrent le vrai client.
- Cliquez sur Copier, collez dans `/etc/nginx/sites-available/<votre-fichier>.conf`, symlinkez vers `sites-enabled`, lancez `sudo nginx -t` pour valider la syntaxe, puis `sudo systemctl reload nginx`.
Quand cet outil est utile
Sept situations où un server-block prêt à l'emploi évite beaucoup de plissements d'yeux sur la doc :
- Vous avez déployé une app Node, Python ou Go sur un VPS et voulez la mettre sur le port 443 avec un vrai cert TLS. Choisissez *Reverse proxy*, pointez vers `http://127.0.0.1:3000`, activez SSL, fini. Nginx termine le TLS, votre app reste en HTTP simple derrière.
- Vous avez acheté un domaine pour une landing page statique. Choisissez *Site statique*, pointez root vers `/var/www/votre-site` et vous obtenez un server-block fonctionnel avec les bons fichiers index et un fallback try_files.
- Vous migrez un vieux domaine vers un nouveau. Choisissez *Redirection*, cible `https://nouveau.exemple.fr$request_uri`, code `301`. Google met à jour l'index, les navigateurs cachent la redirection, vos vieux liens continuent de marcher.
- Vous voulez un sous-domaine pour un blog. Choisissez *Sous-domaine*, préfixe `blog`, base `exemple.fr` et vous obtenez un server-block complet `blog.exemple.fr`. Sauvegardez sous ce nom de fichier exact pour garder `sites-available/` rangé.
- Votre app ne tient pas la charge sur une seule boîte. Choisissez *Load balancer*, collez trois ou quatre lignes backend `address:port`, choisissez `least_conn` et nginx route chaque requête vers la moins occupée. Ajouter un serveur c'est une nouvelle ligne.
- Votre chat temps réel est cassé derrière nginx à cause des WebSockets. Activez *Ajouter les en-têtes Upgrade WebSocket* et nginx forwarde correctement `Upgrade` et `Connection`, avec un timeout de lecture de 24h qui survit aux connexions long-vivantes.
- Vous êtes derrière Cloudflare et tous vos logs disent "172.x.x.x". Activez *Ajouter Cloudflare real IP*, nginx réécrit `$remote_addr` depuis l'en-tête `CF-Connecting-IP` venant des plages Cloudflare. Les rate limits, fail2ban et logs d'audit remarchent.