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.
À utiliser pour concevoir, corriger ou diagnostiquer une configuration Nginx, notamment en reverse proxy ou avec TLS.
À éviter pour l'émission ou le renouvellement de certificats, ou pour l'administration système générale hors Nginx.
Analyse de sécurité
PrudenceThe 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.
- •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.
Exemples
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 an Nginx reverse proxy for app.example.com with TLS 1.2/1.3, HTTP/2, and the correct X-Forwarded-Proto headers.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 -tantes 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_certificatecom 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_sizesó nolocationquando o erro vem doserver- Log de acesso desligado em produção
- Cadeia incompleta — funciona no navegador, falha em cliente de API
Limites
- Não faz reload sem
nginx -tpassar 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 annexesCe 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.mdDepuis 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’OpenSkillsopenskills 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 syncMode 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.
Configurer un canal de discussion avec SecretRefs
DevOps
Configurez des canaux de discussion avec des commandes non interactives, les secrets étant uniquement des SecretRefs. Couvre les étapes de collecte, modification, réparation et vérification.
Enquêter sur les échecs CI de ClickHouse
DevOps
Investigue un échec CI de ClickHouse de bout en bout à partir d'une URL de PR ou de rapport S3. Récupère les tests échoués, classe flaky vs vraie régression, et cherche des issues/fixes existants.
Revue de PR Ansible
DevOps
Examine une PR Ansible selon le processus standardisé du projet, incluant la validation des changelogs, la couverture de tests et le suivi des commentaires.