Revisão da configuração do nginx: segurança, TLS, proxy e cache

Audita a configuração do nginx e recebe os problemas por gravidade e um ficheiro corrigido e comentado: TLS, cabeçalhos de segurança, reverse proxy, limites, cache e redirecionamentos. Pensado para ChatGPT, Claude, Gemini e Microsoft Copilot. Inclui 4 variáveis personalizáveis e pode copiá-lo gratuitamente com um clique.

Intermédio · Código · Pendente de revisão editorial

Prompt

Atua como administrador de sistemas especialista em nginx, segurança web e desempenho.

Revê esta configuração do nginx:
{{configuracao}}

Contexto:
- Função do servidor: {{funcao}}
- Domínio ou domínios: {{dominio}}
- Backend ou raiz dos ficheiros: {{backend}}

Entregáveis:
1. Uma tabela de problemas com gravidade (crítica, alta, média, baixa), linha ou bloco afetado, problema e correção.
2. Verifica no mínimo:
   - TLS: protocolos e cifras, redirecionamento de HTTP para HTTPS, HSTS (explicando o risco de `includeSubDomains` e `preload` antes de os ativar), OCSP stapling.
   - Cabeçalhos de segurança: `X-Content-Type-Options`, `Referrer-Policy`, `X-Frame-Options` ou `frame-ancestors`, e uma CSP inicial assinalada como a testar.
   - `server_tokens off`, acesso a ficheiros ocultos (`.git`, `.env`) e listagem de diretórios.
   - Reverse proxy: `proxy_set_header` (Host, X-Real-IP, X-Forwarded-For, X-Forwarded-Proto), timeouts, buffering, WebSockets se aplicável.
   - Os erros clássicos com `location`, `alias` versus `root`, `try_files` e barras finais.
   - Limites: `client_max_body_size`, `limit_req` para login ou API, ligações.
   - Desempenho: compressão, cache de estáticos com `expires` e `Cache-Control`, HTTP/2.
3. O ficheiro completo corrigido, com um comentário curto em cada alteração.
4. Comandos para validar e aplicar sem interromper o serviço (`nginx -t`, reload) e verificações com `curl -I` para cabeçalhos e redirecionamentos.

Restrições:
- Não alteres o comportamento funcional sem me avisar (rotas, redirecionamentos, tamanhos permitidos).
- Se faltar um ficheiro incluído ou não souberes a versão do nginx, pergunta-me ou marca o ponto como [PREENCHER].
- Indica o que devo verificar em pré-produção antes de passar a produção.

Como utilizar

  1. Cola a saída de nginx -T para incluir todos os ficheiros referenciados, retirando antes palavras-passe ou tokens.
  2. Indica para que serve o servidor e o que está por trás.
  3. Aplica as alterações aos poucos, corre nginx -t, recarrega e verifica os cabeçalhos com curl -I.

Exemplo de utilização

Função: reverse proxy de uma API Node em 127.0.0.1:3000 · Domínio: api.loja-exemplo.pt · Configuração: o bloco server atual com 60 linhas.

Exemplo de resultado

1. Constatações

GravidadeBlocoProblemaCorreção
Críticalisten 80Todo o tráfego vai sem cifraServidor 443 com TLS e redirecionamento 301
Altaserver_nameFalta www.loja-exemplo.ptAdicioná-lo ao certificado e ao bloco
Médialocation /Sem proxy_set_header: a app não vê o IP nem o esquema reaisCabeçalhos X-Forwarded-*
Média—Sem cabeçalhos de segurançanosniff, Referrer-Policy, HSTS
Baixa—server_tokens ativoserver_tokens off

3. Ficheiro corrigido (excerto)

server {
    listen 80;
    server_name loja-exemplo.pt www.loja-exemplo.pt;
    return 301 https://$host$request_uri;   # força HTTPS mantendo o host
}

server {
    listen 443 ssl;
    http2 on;                                # nginx >= 1.25.1; versão: [COMPLETAR]
    server_name loja-exemplo.pt www.loja-exemplo.pt;
    ssl_certificate     /etc/ssl/loja/fullchain.pem;    # [COMPLETAR]
    ssl_certificate_key /etc/ssl/loja/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    server_tokens off;

    # HSTS sem includeSubDomains nem preload até rever todos os subdomínios
    add_header Strict-Transport-Security "max-age=31536000" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "strict-origin-when-cross-origin" always;

    location ~ /\.(?!well-known) { deny all; }   # bloqueia .git, .env…

    location / {
        proxy_pass http://127.0.0.1:3000;
        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;
    }
}

Valida com nginx -t && systemctl reload nginx e confirma que curl -I http://loja-exemplo.pt devolve 301…

Dados-chave

Categoria
Programação e desenvolvimento · DevOps
Tipo de resultado
Código
Nível
Intermédio
Pensado para
ChatGPT, Claude, Gemini e Microsoft Copilot
Verificado em
Pendente de verificação editorial
Variáveis
Configuração atual, Função do servidor, Domínios e Backend ou raiz
Idioma
Português
Preço
Gratuito, sem registo
Atualizado
07/11/2026

Perguntas frequentes

É seguro ativar o HSTS com preload logo de início?

Não é recomendável. Com preload, os browsers forçam HTTPS no domínio e subdomínios durante muito tempo e é difícil voltar atrás. Começa com um max-age curto e aumenta-o quando tudo funcionar em HTTPS.

Porque é que a CSP aparece como a testar?

Uma Content-Security-Policy rígida pode bloquear scripts, fontes ou iframes legítimos. O mais prudente é publicá-la primeiro em modo Report-Only e ajustá-la depois.

Para que serve este prompt?

Audita a configuração do nginx e recebe os problemas por gravidade e um ficheiro corrigido e comentado: TLS, cabeçalhos de segurança, reverse proxy, limites, cache e redirecionamentos.

Com que ferramentas de IA funciona?

Foi pensado para ChatGPT, Claude, Gemini e Microsoft Copilot. Ainda não o verificámos nestas ferramentas, pelo que os resultados podem variar entre elas.

Como personalizo o prompt?

Clique em “Personalizar” e preencha as variáveis (Configuração atual, Função do servidor, Domínios e Backend ou raiz). O texto atualiza-se instantaneamente e pode depois copiá-lo com um clique. Os valores ficam guardados apenas no seu navegador.

Preciso de experiência para o utilizar?

É de nível intermédio: convém conhecer o tema para fornecer bom contexto e rever o resultado com sentido crítico.

Este prompt é gratuito?

Sim. Todos os prompts do HomeCasa Prompts são gratuitos, sem registo nem subscrição. Pode também utilizá-los em projetos profissionais.

Posso confiar no resultado da IA?

Trate-o como um rascunho de qualidade: verifique sempre os dados, os números e as afirmações importantes antes de publicar ou tomar decisões.

Prompts relacionados