Guide rapide de configuration Nginx
Tableau de référence rapide des fragments de configuration Nginx courants, pour rechercher et copier rapidement le code de configuration
Définition automatique du nombre de processus de travail (généralement égal au nombre de cœurs du CPU)
worker_processes auto;
Définition du nombre maximal de connexions par processus de travail
events {
worker_connections 1024;
}Inclusion de la configuration des types MIME
include /etc/nginx/mime.types; default_type application/octet-stream;
Activation de la transmission efficace des fichiers
sendfile on; tcp_nopush on; tcp_nodelay on;
Définition du temps d'expiration des connexions persistantes
keepalive_timeout 65;
Définition de la taille maximale du corps de la requête du client
client_max_body_size 100M;
Masquage du numéro de version de Nginx
server_tokens off;
Configuration de base du bloc Server
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html;
}Configuration de plusieurs noms de domaine
server_name example.com www.example.com;
Configuration de noms de domaine avec joker
server_name *.example.com;
Définition du serveur par défaut
listen 80 default_server;
Écoute sur une adresse IPv6
listen [::]:80;
Définition du répertoire racine ou d'un alias
root /var/www/html; # Ou utiliser alias alias /var/www/files/;
Correspondance exacte du chemin
location = /path {
# Correspondance exacte
}Correspondance de préfixe du chemin
location /api/ {
# Correspondance de préfixe
}Correspondance par expression régulière
location ~ \.php$ {
# Correspondance régulière (sensible à la casse)
}Correspondance régulière insensible à la casse
location ~* \.\(jpg|jpeg|png|gif)$ {
# Correspondance régulière (insensible à la casse)
}Correspondance de préfixe prioritaire (prioritaire par rapport aux expressions régulières)
location ^~ /images/ {\n # Correspondance de préfixe prioritaire\n}Ordre d'essai des fichiers (couramment utilisé pour les applications SPA)
location / {\n try_files $uri $uri/ /index.html;\n}Accès uniquement aux requêtes internes
location /internal/ {\n internal;\n}Configuration de base de proxy inverse
location /api/ {\n proxy_pass http://backend:3000/;\n}Définition des en-têtes de requête de proxy
proxy_set_header Host $host;\nproxy_set_header X-Real-IP $remote_addr;\nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\nproxy_set_header X-Forwarded-Proto $scheme;
Configuration de proxy pour WebSocket
location /ws/ {\n proxy_pass http://backend:3000/;\n proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n}Définition du groupe de serveurs upstream
upstream backend {\n server 127.0.0.1:3000;\n server 127.0.0.1:3001;\n keepalive 32;\n}Configuration de l'équilibrage de charge
upstream backend {\n least_conn; # ou ip_hash;\n server 127.0.0.1:3000;\n server 127.0.0.1:3001;\n}Paramètres de timeout pour le proxy
proxy_connect_timeout 60s;\nproxy_send_timeout 60s;\nproxy_read_timeout 60s;
Configuration des tampons de proxy
proxy_buffering on;\nproxy_buffer_size 4k;\nproxy_buffers 8 4k;
Configuration SSL de base
server {\n listen 443 ssl http2;\n ssl_certificate /path/to/cert.pem;\n ssl_certificate_key /path/to/key.pem;\n}Définition des versions de protocole SSL
ssl_protocols TLSv1.2 TLSv1.3;
Définition des suites de chiffrement
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;\nssl_prefer_server_ciphers on;
Cache de session SSL
ssl_session_cache shared:SSL:10m;\nssl_session_timeout 1d;
Redirection HTTP vers HTTPS
server {\n listen 80;\n server_name example.com;\n return 301 https://$server_name$request_uri;\n}Activation de HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Activation de l'OCSP Stapling
ssl_stapling on;\nssl_stapling_verify on;\nresolver 8.8.8.8 8.8.4.4 valid=300s;
Mise en cache des ressources statiques
location ~* \\.\.(css|js|jpg|jpeg|png|gif|ico|svg|woff|woff2)$ {\n expires 30d;\n add_header Cache-Control "public, immutable";\n}Désactivation du cache
location /api/ {\n add_header Cache-Control "no-store, no-cache, must-revalidate";\n}Configuration du cache de proxy
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g;\n\nlocation / {\n proxy_cache my_cache;\n proxy_cache_valid 200 1d;\n}Activation de l'ETag
etag on;
Activation des requêtes conditionnelles
if_modified_since before;
Configuration de base de compression Gzip
gzip on;\ngzip_vary on;\ngzip_min_length 1024;\ngzip_comp_level 6;
Définition des types MIME à compresser
gzip_types text/plain text/css text/xml text/javascript application/javascript application/json application/xml;
Activation de la compression pour les requêtes proxy
gzip_proxied any;
Activer les fichiers pré-compressés
gzip_static on;
Configuration CORS跨域
add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; add_header Access-Control-Allow-Headers "DNT,User-Agent,X-Requested-With,Content-Type";
Protection contre XSS et le clickjacking
add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options SAMEORIGIN;
Politique de sécurité du contenu
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'";
Limitation de la vitesse des requêtes
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
location /api/ {
limit_req zone=one burst=20 nodelay;
}Interdire l'accès aux fichiers cachés
location ~ /\. {
deny all;
}Liste blanche d'IP
location /admin/ {
allow 192.168.1.0/24;
deny all;
}Configuration des journaux d'accès
access_log /var/log/nginx/access.log;
Configuration des journaux d'erreurs
error_log /var/log/nginx/error.log warn;
Format de journal personnalisé
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';Journal au format JSON
log_format json escape=json '{"time":"$time_iso8601","ip":"$remote_addr","method":"$request_method","uri":"$uri","status":$status}';Désactiver les journaux d'accès
access_log off;
Journal conditionnel (enregistrer uniquement les erreurs)
map $status $loggable {
~^[23] 0;
default 1;
}
access_log /var/log/nginx/access.log combined if=$loggable;Cache des descripteurs de fichiers
open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2;
Activer l'acceptation de plusieurs connexions et epoll
events {
multi_accept on;
use epoll;
}Cache FastCGI
fastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2 keys_zone=fastcgi:10m;
location ~ \.php$ {
fastcgi_cache fastcgi;
fastcgi_cache_valid 200 1h;
}Limitation du nombre de connexions
limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 100;
Optimisation des temps d'attente
client_body_timeout 12; client_header_timeout 12; send_timeout 10;
📖Présentation de l'outil.
Caractéristiques.
❓Questions fréquentes.
🔗Outils associés.
Parseur d'expressions Cron
Vérifier la syntaxe Cron et prévisualiser les prochaines exécutions.
JSON vers CSV
Convertir les données JSON au format CSV
JSON vers YAML
Convertir les données JSON au format YAML
Convertisseur JSON vers XML.
Convertir des données JSON en XML.
YAML vers JSON
Convertir la configuration YAML en données JSON
Formatteur JSON
Mettre en forme, valider et compresser les données JSON
Visualisation JSON
Affichage des données JSON en arbre
Générateur de données JSON
Générer des données JSON simulées pour les tests.
Traducteur JSON i18n
Traduction complète d’un fichier JSON de langue. Collez votre contenu de base, choisissez la langue cible; l’outil utilisera des clés aplaties pour appeler votre API OpenRouter.
Comparaison des différences JSON
Comparer les différences entre deux données JSON
Générateur de codes QR
Générer une image de code QR personnalisée.
Générateur d'image SVG de remplacement
Générer une image SVG de remplacement personnalisée
Convertisseur d'images Base64
Outil de conversion réciproque entre images et Base64.
Générateur UUID
Génération en lot d'identifiants UUID uniques
Générateur de mot de passe
Générer des mots de passe aléatoires, sécurisés et fiables.
Encodage/décodage Base64
Outil d'encodage et de décodage de chaînes Base64
Encodage/décodage d'URL
Outil d'encodage et de décodage de chaînes URL
Générateur de hachage MD5
outil de génération de hachage MD5
Générateur de hachage SHA256
outil de génération de hachage SHA256
Générateur de hachage SHA1
Outil de génération de hachages SHA1
Encodeur/décodeur hexadécimal
Outil d'encodage/décodage de chaînes hexadécimales
Encodeur/décodeur binaire
Outil d'encodage/décodage de chaînes binaires
Outil de chiffrement et de déchiffrement AES
Outil de chiffrement et déchiffrement utilisant l'algorithme AES
Outil de chiffrement/déchiffrement RSA
Outil de chiffrement RSA (asymétrique)
Générateur HMAC
Générateur de code d'authentification de message HMAC (HMAC).
Recherche d'adresse IP
Localisation géographique et informations réseau d'une adresse IP
Convertisseur de millisecondes
Convertir entre le timestamp en millisecondes et la chaîne yyyy-MM-dd HH:mm:ss.