Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)48 mil · #4017

reverse-proxy

Configura proxies reversos como Nginx e Traefik para roteamento e SSL.

O que ela faz

Um proxy reverso ajuda a direcionar o tráfego da internet para os seus serviços. Ele também pode proteger seus serviços, gerenciando certificados de segurança (SSL) e controlando quem acessa o quê.

Quando usar

  • ✓Quando você tem vários serviços e quer acessá-los por um único endereço.
  • ✓Para adicionar uma camada de segurança, como certificados SSL, antes que o tráfego chegue aos seus serviços.
  • ✓Para controlar o número de acessos que um serviço recebe, evitando sobrecarga.

Exemplo do que pedir para a IA

“Configure um proxy reverso para que o site 'meuapp.com' direcione para o serviço rodando na porta 3000.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/reverse-proxy/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/reverse-proxy/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O proxy reverso fica na frente dos seus serviços. Quando alguém acessa seu endereço, o proxy decide para qual serviço enviar a solicitação. Ele também pode verificar e instalar certificados de segurança.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill reverse-proxy

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/reverse-proxy/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Proxy Reverso

Configure proxies reversos para rotear tráfego, encerrar TLS, impor limites de taxa e servir como gateway entre clientes e serviços de backend.

Quando Usar

  • Roteamento de tráfego de um domínio público para um ou mais serviços de backend.
  • Encerrar TLS na borda e encaminhar HTTP simples para os backends.
  • Adicionar limitação de taxa, CORS, cabeçalhos de segurança e controle de acesso.
  • Consolidar múltiplos serviços sob um único domínio com roteamento baseado em caminho.
  • Lidar com atualizações WebSocket, proxy gRPC ou passagem HTTP/2.

Pré-requisitos

  • Serviço(s) de backend rodando em host:porta conhecidos.
  • Certificado TLS (Let's Encrypt, ACM ou autoassinado para desenvolvimento).
  • nginx 1.25+ ou Traefik 3.x instalado.
  • Registro DNS apontando o domínio para o servidor proxy.

Proxy Reverso com nginx

Proxy HTTPS Básico com Redirecionamento

# /etc/nginx/sites-available/app.example.com
server {
    listen 80;
    server_name app.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name app.example.com;

    # TLS configuration
    ssl_certificate     /etc/letsencrypt/live/app.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/app.example.com/privkey.pem;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers on;
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;

    # Security headers
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
    add_header X-Frame-Options DENY always;
    add_header X-Content-Type-Options nosniff always;
    add_header Referrer-Policy strict-origin-when-cross-origin always;

    # Proxy to backend
    location / {
        proxy_pass http://127.0.0.1:3000;
        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;

        # Timeouts
        proxy_connect_timeout 5s;
        proxy_read_timeout 60s;
        proxy_send_timeout 60s;

        # Buffering
        proxy_buffering on;
        proxy_buffer_size 4k;
        proxy_buffers 8 4k;
    }
}

Roteamento Baseado em Caminho para Múltiplos Serviços

server {
    listen 443 ssl http2;
    server_name app.example.com;

    ssl_certificate     /etc/letsencrypt/live/app.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/app.example.com/privkey.pem;

    # Frontend SPA
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
    }

    # API backend
    location /api/ {
        proxy_pass http://127.0.0.1:8080/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_read_timeout 120s;
    }

    # WebSocket endpoint
    location /ws/ {
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_read_timeout 86400s;  # 24h for long-lived connections
    }

    # Static assets with caching
    location /static/ {
        alias /var/www/static/;
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
}

Limitação de Taxa

# Define rate limit zones in http block
http {
    # 10 requests/second per IP
    limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;

    # 1 request/second for login
    limit_req_zone $binary_remote_addr zone=login_limit:10m rate=1r/s;

    # Connection limit per IP
    limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
}

server {
    listen 443 ssl http2;
    server_name app.example.com;

    # Apply rate limit to API
    location /api/ {
        limit_req zone=api_limit burst=20 nodelay;
        limit_req_status 429;
        proxy_pass http://127.0.0.1:8080;
    }

    # Strict rate limit on auth endpoints
    location /api/auth/ {
        limit_req zone=login_limit burst=5;
        limit_req_status 429;
        proxy_pass http://127.0.0.1:8080;
    }

    # Connection limit
    location / {
        limit_conn conn_limit 100;
        proxy_pass http://127.0.0.1:3000;
    }
}

Compressão Gzip e Brotli

http {
    gzip on;

…
Perguntas frequentes

O que é SSL/TLS?

É uma tecnologia que criptografa a comunicação entre o usuário e o servidor, garantindo que os dados trocados sejam seguros e privados. O proxy reverso gerencia isso.

O que significa 'rotear tráfego'?

Significa direcionar as requisições que chegam ao proxy para o serviço correto, baseado em regras como o endereço acessado ou o tipo de solicitação.

Preciso instalar o Nginx ou Traefik?

Sim, o proxy reverso precisa de um software como Nginx ou Traefik instalado e configurado no seu servidor para funcionar.

Detalhes

Descrição original do autor

Configure nginx and Traefik as reverse proxies. Implement SSL termination and routing. Use when setting up application gateways.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4017
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas