Générateur de Configuration Serveur
Génère des configurations Nginx et des règles Apache .htaccess pour les redirections et en-têtes de sécurité.
Générateur de Configuration Serveur
Créez des fichiers de configuration prêts à l'emploi pour Nginx et Apache (.htaccess) avec les meilleures pratiques de sécurité et de performance.
Configuration
Force une connexion SSL/TLS sécurisée via des redirections 301 automatiques.
HTTP/2 permet le multiplexage et la compression des en-têtes – bien plus rapide que HTTP/1.1. Nécessite SSL.
HTTP/3 utilise QUIC sur UDP – encore plus rapide, latence réduite. Nécessite Nginx ≥ 1.25 et le port UDP 443 ouvert.
Ajoute des commentaires et des commandes Certbot pour l'émission automatique de certificats SSL.
Indique aux navigateurs d'accéder uniquement au site via HTTPS. max-age=63072000 = 2 ans.
Soumet le domaine à la liste de préchargement du navigateur. Attention : n'activer que si HTTPS est garanti en permanence.
Compresse les fichiers texte (HTML, CSS, JS, JSON) avant le transfert – économise 60–80% de bande passante.
Brotli offre de meilleurs taux de compression que Gzip, supporté par tous les navigateurs modernes.
Optimise la mise en cache du navigateur : les ressources statiques (JS/CSS/images) sont mises en cache longtemps, les pages HTML toujours revalidées.
Ajoute HSTS, CSP, X-Frame-Options, X-Content-Type-Options et Referrer-Policy.
Prévient les attaques XSS en restreignant les sources de ressources autorisées.
Contrôle quelles informations de référent sont transmises lors des liens.
Restreint les API du navigateur (caméra, microphone, géolocalisation etc.) – empêche les abus par le contenu intégré.
Active Cross-Origin-Opener/Embedder/Resource-Policy pour isoler contre les attaques de type Spectre.
Ancien en-tête de protection XSS pour IE/Edge. Les navigateurs modernes l'ignorent, mais ça ne fait pas de mal.
Transfère la vraie IP du client au serveur backend (important derrière un reverse proxy).
Transfère l'en-tête Accept-Language du client au serveur backend – important pour les applications multilingues.
Restaure la vraie IP du visiteur lorsque le trafic passe par Cloudflare ou un reverse proxy.
Limite les requêtes par IP via limit_req_zone – protège /api et les zones de connexion contre la surcharge.
Sécurise l'ensemble du répertoire avec un nom d'utilisateur et un mot de passe.
server {
listen 80;
listen [::]:80;
server_name meine-domain.de www.meine-domain.de;
# Redirect all HTTP traffic to HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name meine-domain.de;
root /var/www/meine-domain.de/html;
index index.html index.php;
client_max_body_size 16m;
# ── SSL – Let's Encrypt (Certbot) ──────────────────────────────────
# Run: certbot --nginx -d meine-domain.de -d www.meine-domain.de
# Certbot fills in / manages the paths below automatically.
ssl_certificate /etc/letsencrypt/live/meine-domain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/meine-domain.de/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
ssl_trusted_certificate /etc/letsencrypt/live/meine-domain.de/chain.pem;
# ── Gzip Compression ───────────────────────────────────────────────
gzip on;
gzip_comp_level 6;
gzip_min_length 1024;
gzip_vary on;
gzip_proxied any;
gzip_types
text/plain text/css text/xml text/javascript
application/javascript application/json application/xml
image/svg+xml application/manifest+json font/woff2;
# ── Security Headers ───────────────────────────────────────────────
add_header X-Frame-Options "DENY" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=()" always;
# Hide nginx version. Note: X-Powered-By from PHP-FPM/upstreams is NOT
# removed by server_tokens – use the headers-more module for that:
# more_clear_headers "X-Powered-By"; "Server";
server_tokens off;
# ── Cache-Control ──────────────────────────────────────────────────
# Fingerprinted assets (content-hash in filename) → cache forever
location ~* \.(js|css|woff2?|ttf|otf|eot)$ {
add_header Cache-Control "public, max-age=31536000, immutable";
access_log off;
try_files $uri =404;
}
# Images & media → 30 days
location ~* \.(avif|webp|jpe?g|png|gif|svg|ico)$ {
add_header Cache-Control "public, max-age=2592000";
access_log off;
try_files $uri =404;
}
# ── Main location ──────────────────────────────────────────────────
location / {
add_header Cache-Control "public, max-age=0, must-revalidate";
try_files $uri $uri/index.html $uri.html =404;
}
# ── Reverse Proxy / API Backend ────────────────────────────────────
location /api {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
# Forward real client IP
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;
proxy_set_header Host $http_host;
}
# ── Error pages ────────────────────────────────────────────────────
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
# ── OCSP Stapling & Resolver (needs ssl_trusted_certificate above) ──
ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 8.8.8.8 valid=300s ipv6=off;
resolver_timeout 5s;
}
Guide & bonnes pratiques
Server Config Generator pour Nginx et Apache
Créez des configurations serveur prêtes pour la production avec des options modernes de sécurité et performance, adaptées à la couche HTTP/serveur.
Cas d’utilisation typiques
Utile pour mettre en place de nouveaux vhosts, durcir des serveurs existants, passer à HTTPS et standardiser les en-têtes de sécurité.
Comment Balou génère les configs serveur
Vous choisissez serveur et options (HTTPS, HSTS, CSP, compression, cache) ; Balou génère une configuration adaptée comme point de départ.
Bonnes pratiques de configuration serveur
Imposez HTTPS et HSTS, activez HTTP/2 et Brotli/Gzip, définissez des en-têtes de cache pertinents et testez avant le reload.
Questions fréquentes
Nginx ou Apache – lequel choisir ?
Nginx excelle comme reverse proxy et pour le statique, Apache brille par la flexibilité .htaccess et un large support de modules.
Comment imposer HTTPS et HSTS ?
Via une redirection 301 de HTTP vers HTTPS et l’en-tête Strict-Transport-Security: max-age=63072000; includeSubDomains; preload.
Brotli ou Gzip ?
Brotli compresse davantage les assets statiques ; Gzip sert de repli largement compatible.
Ces correctifs serveur sont-ils toujours justes ?
Ils relèvent de la couche HTTP/serveur (en-têtes, redirections, terminaison TLS) – un problème DNS comme MX/SPF/DMARC manquant ne se règle pas côté serveur web.