Mode d’emploi
- Indiquez le domaine et choisissez le type de site — une adresse en amont pour un proxy inverse, ou la racine web pour les autres.
- Cochez HTTPS, HTTP/2, HSTS, la redirection www, gzip, la mise en cache et les en-têtes de sécurité selon vos besoins.
- Copiez ou téléchargez la configuration dans /etc/nginx/conf.d/, exécutez nginx -t et rechargez nginx.
Explication des options
- Proxy inverse
- Transmet vers l'adresse en amont et passe Host, X-Real-IP, X-Forwarded-For et X-Forwarded-Proto, afin que le backend voie l'IP réelle et le schéma du visiteur.
- Application monopage
- Les chemins inconnus retombent sur index.html, afin que les routeurs en mode historique (React Router, Vue Router) ne renvoient pas de 404 au rechargement.
- HTTPS
- Les chemins des certificats suivent les valeurs par défaut de certbot (Let's Encrypt) et les requêtes HTTP reçoivent une redirection 301 vers HTTPS. HTTP/2 utilise la forme listen 443 ssl http2, qui fonctionne sur toutes les versions de nginx.
- HSTS
- Indique aux navigateurs de n'utiliser que HTTPS pour le domaine et tous ses sous-domaines pendant un an. Assurez-vous d'abord que chaque sous-domaine prend en charge HTTPS, sinon ils deviennent inaccessibles.
Exemple : application monopage avec HTTPS et www
Avec le domaine example.com, Application monopage, HTTPS, HTTP/2 et Répondre aussi à www. et le rediriger cochés (et Compression Gzip, En-têtes de sécurité et Cache long pour les fichiers statiques désactivés pour rester court), le générateur écrit trois blocs server :
- Le port 80 répond aux deux noms, laisse
/.well-known/acme-challenge/accessible pour le renouvellement du certificat et envoie tout le reste vershttps://example.com$request_uriavec un 301. - Le port 443 pour
www.example.comutilise le même certificat et renvoie un 301 vers le domaine nu. - Le port 443 pour
example.comsert le site :
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
Les deux blocs HTTPS pointent vers /etc/letsencrypt/live/example.com/fullchain.pem et privkey.pem, autorisent TLS 1.2 et 1.3 et utilisent un cache de session partagé de 10 Mo avec un délai d’expiration de session d’un jour. La ligne try_files permet de faire en sorte qu’un rechargement sur une route côté client comme /settings renvoie l’application plutôt qu’une erreur 404.
Questions fréquentes
Pourquoi nginx -t signale-t-il que le paramètre http2 est obsolète ?
Depuis nginx 1.25.1, la directive séparée http2 on; est préférée, mais la version 1.24 — livrée avec Ubuntu 24.04 et d'autres — ne la comprend pas. La forme listen ... http2 fonctionne partout ; les versions récentes affichent seulement un avertissement.
Le certificat doit-il inclure www ?
Oui, quand la redirection www est activée. Demandez les deux noms, par exemple certbot -d example.com -d www.example.com.
Les envois échouent avec 413 Request Entity Too Large ?
nginx autorise par défaut un corps de requête de 1 Mo. Réglez la taille maximale d'envoi selon vos besoins, par exemple 100.
Les connexions WebSocket échouent à travers le proxy ?
Le proxy doit transmettre les en-têtes Upgrade et Connection. Cocher Prise en charge de WebSocket les ajoute et augmente le délai de lecture à une heure.
Confidentialité
Cet outil fonctionne entièrement dans votre navigateur. Vos fichiers et vos textes sont traités sur votre appareil et ne sont jamais envoyés à nos serveurs.