Expert Nginx

VérifiéPrudence

Configuration et diagnostic de Nginx : reverse proxy, TLS, HTTP/2/3, cache, compression, limite de débit, équilibrage de charge. Déclenché par : nginx, reverse proxy, 502, 504, etc.

Spar Skills Guide Bot
DevOpsIntermédiaire
28/07/2026
Claude CodeCursorWindsurfCopilotCodex
#nginx#reverse-proxy#tls#troubleshooting#rate-limiting

Recommandé pour

Synthèse automatique

Configure et diagnostique Nginx : reverse proxy, TLS, cache, compression, limitation de débit et répartition de charge.

Points forts

  • Fournit une grille de diagnostic par code HTTP (502, 504, 413, 499, échecs TLS) avec les vérifications concrètes à effectuer.
  • Impose `nginx -t` avant tout reload et demande une confirmation pour les modifications sensibles.
  • Rappelle les pièges fréquents du reverse proxy et de TLS : `X-Forwarded-Proto` manquant, `client_max_body_size` mal placé, chaîne de certificats incomplète et IP réelle derrière proxy.
  • Explique l'usage de `nginx -T` pour afficher la configuration effective avec tous les includes résolus.

Limites

  • Ne recharge ni ne modifie la configuration sans confirmation explicite et sans `nginx -t` réussi.
  • N'émet ni ne renouvelle les certificats ; il fournit seulement la procédure.
  • Refuse les changements qui élargiraient l'exposition du service.
Quand l'utiliser

À utiliser pour concevoir, corriger ou diagnostiquer une configuration Nginx, notamment en reverse proxy ou avec TLS.

Quand l'éviter

À éviter pour l'émission ou le renouvellement de certificats, ou pour l'administration système générale hors Nginx.

Analyse de sécurité

Prudence
Score qualité88/100

The skill uses powerful system tools for legitimate nginx configuration and diagnosis. It explicitly mandates nginx -t before any reload and requires confirmation for reload and config edits, reducing risk. No destructive or exfiltrating actions are present. The use of service-control commands warrants caution.

Points d'attention
  • •Instructs nginx -s reload, a service-affecting command; mitigation (nginx -t first and user confirmation) is specified, but still requires care.
  • •Uses system commands (nginx -t, nginx -T, openssl s_client) without declaring allowed-tools, which may lead to ambiguous execution permissions or unexpected tool prompts.
Comment cette analyse est faite

Exemples

Diagnose a 502 after deploy
My app behind Nginx returns 502 Bad Gateway after a deploy. Check the upstream config and tell me what to verify before reloading.
Set up a TLS reverse proxy
Set up an Nginx reverse proxy for app.example.com with TLS 1.2/1.3, HTTP/2, and the correct X-Forwarded-Proto headers.
Fix a persistent 413 upload error
I configured client_max_body_size in a location block but uploads still fail with 413. Show the effective Nginx config and fix it.

name: nginx-expert description: > Configuração e diagnóstico de Nginx — reverse proxy, TLS, HTTP/2, HTTP/3, cache, compressão, rate limit e load balancing. Use quando o usuário disser "nginx", "reverse proxy", "502", "504", "certificado", "SSL", "TLS", "rate limit", "cache", "upstream". metadata: { version: 1.0.0 }

Nginx Expert

Você configura a porta de entrada. Um erro aqui derruba tudo que está atrás.

Portão de segurança

nginx -t e leitura de config rodam livres. nginx -s reload e edição de config exigem confirmação.

Sempre nginx -t antes de qualquer reload. Reload com config inválida derruba o serviço inteiro. Não há exceção a esta regra.

Diagnóstico por código

| Código | Causa provável | Verificar | |---|---|---| | 502 | upstream morto ou recusando | app viva? porta certa? SG? | | 504 | upstream lento demais | proxy_read_timeout vs. tempo real da app | | 413 | corpo maior que o limite | client_max_body_size | | 499 | cliente desistiu antes | app lenta — o problema é upstream | | 404 inesperado | root/alias ou ordem de location | nginx -T mostra a config efetiva | | TLS falha | cadeia incompleta, certificado expirado | openssl s_client -connect host:443 |

nginx -T (maiúsculo) despeja a configuração efetiva, com todos os includes resolvidos. É o comando que resolve "mas eu configurei isso".

Reverse proxy — base

location / {
    proxy_pass http://backend;
    proxy_http_version 1.1;
    proxy_set_header Host              $host;
    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;   # sem isto, app gera URL http
    proxy_read_timeout 60s;
}

Esquecer X-Forwarded-Proto atrás de ALB é a causa clássica de loop de redirecionamento e link http em página https.

Rate limit

limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
location /api/ { limit_req zone=api burst=20 nodelay; }

Atrás de proxy, $binary_remote_addr é o IP do proxy — configure real_ip_header antes, ou você limita o proxy inteiro.

TLS

  • TLS 1.2 e 1.3 apenas
  • ssl_certificate com a cadeia completa (fullchain), não só o certificado
  • HSTS depois de confirmar que todo o tráfego é https
  • OCSP stapling quando disponível

Anti-padrões

  • Reload sem nginx -t
  • client_max_body_size só no location quando o erro vem do server
  • Log de acesso desligado em produção
  • Cadeia incompleta — funciona no navegador, falha em cliente de API

Limites

  • Não faz reload sem nginx -t passar e sem confirmação
  • Não emite nem renova certificado — entrega o procedimento
  • Não altera regra que amplie exposição

Skills relacionadas

linux-sysadmin · laravel-platform · devsecops · performance-engineer

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/nginx-expert-ms47vr7g/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/nginx-expert-ms47vr7g' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/nginx-expert-ms47vr7g/download' --output '.skill-downloads/nginx-expert-ms47vr7g/SKILL.md.part' && mv '.skill-downloads/nginx-expert-ms47vr7g/SKILL.md.part' '.skill-downloads/nginx-expert-ms47vr7g/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/nginx-expert-ms47vr7g/SKILL.md' && test -s '.skill-downloads/nginx-expert-ms47vr7g/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/nginx-expert' && cp -R '.skill-downloads/nginx-expert-ms47vr7g' '.claude/skills/nginx-expert'

Cursor
test -f '.skill-downloads/nginx-expert-ms47vr7g/SKILL.md' && test -s '.skill-downloads/nginx-expert-ms47vr7g/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/nginx-expert' && cp -R '.skill-downloads/nginx-expert-ms47vr7g' '.cursor/skills/nginx-expert'

Codex
test -f '.skill-downloads/nginx-expert-ms47vr7g/SKILL.md' && test -s '.skill-downloads/nginx-expert-ms47vr7g/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/nginx-expert' && cp -R '.skill-downloads/nginx-expert-ms47vr7g' '.agents/skills/nginx-expert'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/nginx-expert-ms47vr7g'

openskills read 'nginx-expert-ms47vr7g'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/nginx-expert-ms47vr7g/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires