Ir para o conteúdo principal
Nginx como proxy reverso: usos em aplicações modernasDevOps e Cloud

Nginx como proxy reverso: usos em aplicações modernas

Entenda como o Nginx organiza o acesso a sites, APIs e containers como proxy reverso. Conheça exemplos de configuração, cuidados com HTTPS, WebSocket, balanceamento de carga e diagnóstico de falhas.

Publicado em 13 de outubro de 202610 min de leituraMax Alex

Entenda como organizar o acesso a sites, APIs e aplicações com Nginx, além dos cuidados para adotar essa arquitetura.

Usar Nginx como proxy reverso permite organizar a entrada de requisições para diferentes aplicações. O visitante acessa um domínio público, enquanto o Nginx encaminha cada solicitação ao serviço responsável e devolve a resposta.

Essa organização ajuda quando um projeto reúne site institucional, API, área de clientes e recursos em tempo real. Também traz responsabilidades: configurar rotas, acompanhar certificados, investigar falhas e manter os serviços de destino disponíveis.

Para empresas em Recife, a decisão deve acompanhar as necessidades do projeto. Um site simples e um portal integrado a sistemas comerciais podem exigir estruturas bastante diferentes.

O que é Nginx como proxy reverso e como funciona

Um proxy reverso recebe requisições em nome dos serviços que ficam atrás dele. O navegador conhece o endereço público, mas não precisa conhecer a porta ou o servidor em que cada aplicação funciona.

Imagine o site de uma empresa de Recife: o visitante abre o domínio por HTTPS, o Nginx recebe a conexão e encaminha a solicitação ao sistema de conteúdo. A resposta retorna pelo Nginx até o navegador.

O destino pode estar em outro processo no mesmo computador, em um container ou em outro servidor. Na mesma arquitetura, o Nginx pode entregar arquivos estáticos, como imagens e folhas de estilo, e encaminhar páginas dinâmicas à aplicação.

Proxy reverso, proxy de saída e CDN

O proxy de saída representa clientes que acessam outros serviços. Já o proxy reverso representa os serviços que recebem acessos. Essa diferença ajuda a entender em qual lado da comunicação cada componente atua.

Uma CDN pode complementar a entrega de conteúdo em pontos distribuídos. O artigo sobre como uma CDN entrega imagens e arquivos mais rápido aprofunda esse componente da infraestrutura.

Adicionar um proxy reverso não garante segurança ou velocidade. Os resultados dependem da configuração, dos recursos disponíveis e do comportamento da aplicação.

Quando usar proxy reverso em sites, APIs e aplicações

Um proxy reverso para aplicações web faz sentido quando há serviços que precisam compartilhar uma entrada pública ou seguir regras de encaminhamento diferentes.

  • Por domínio: o site institucional e o portal de clientes seguem para aplicações distintas.
  • Por caminho: a raiz do domínio atende o frontend, enquanto /api/ encaminha solicitações à API.
  • Por responsabilidade: o proxy recebe as conexões públicas, e as aplicações usam portas acessíveis apenas no ambiente interno.

Considere uma empresa cujo site consulta disponibilidade de produtos no sistema comercial. O navegador chama /api/produtos, e o Nginx encaminha essa requisição ao serviço de integração. A autenticação e as regras de acesso continuam sob responsabilidade dos componentes apropriados.

Antes de instalar outra camada, confira o que a hospedagem já oferece. Algumas plataformas administram entrada de tráfego e HTTPS, reduzindo o trabalho operacional da equipe.

Para cenários de publicação de serviços internos, também vale compreender a publicação de serviços com Cloudflare Tunnel. A escolha precisa considerar os requisitos de acesso e as dependências de cada solução.

O benefício de centralizar a entrada deve compensar o esforço de manter configurações, certificados, atualizações e monitoramento.

Como estruturar uma configuração básica de proxy reverso

A configuração de proxy reverso começa pela definição do domínio, dos caminhos atendidos e dos endereços de destino. O exemplo abaixo considera Nginx e aplicação no mesmo servidor, com a aplicação escutando em 127.0.0.1:3000.

É um exemplo didático em HTTP. O bloco deve ficar dentro do contexto http, diretamente ou por um arquivo incluído nesse contexto.

server {
    listen 80;
    server_name exemplo.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server agrupa as regras de atendimento; server_name identifica o domínio; location seleciona caminhos; e proxy_pass define o destino.

Atenção às barras e aos cabeçalhos

Em um location /api/ simples, sem outras reescritas, proxy_pass http://127.0.0.1:3000; mantém /api/produtos. Com proxy_pass http://127.0.0.1:3000/;, o destino recebe /produtos. Escolha conforme as rotas da API.

Os cabeçalhos comunicam host, cadeia de endereços e protocolo ao serviço. Configure a aplicação para confiar apenas em proxies autorizados: valores encaminhados pelo cliente não devem ser aceitos indiscriminadamente.

Se houver CDN ou balanceador antes do Nginx, revise também como o protocolo original e o endereço do cliente são identificados.

Validar antes de recarregar

Execute a validação e, somente após seu sucesso, recarregue:

nginx -t
nginx -s reload

Use as permissões e o mecanismo de gerenciamento adequados à instalação. Depois, teste as rotas reais: a validação não comprova disponibilidade do destino.

O proxy também depende de um processo de aplicação estável. Para complementar esse ponto, consulte PM2 para manter processos Node.js e Python ativos e monitorados.

HTTPS e segurança na comunicação com as aplicações

Com HTTPS com Nginx, o proxy pode receber a conexão TLS do navegador e administrar o certificado do domínio. Essa terminação TLS exige certificado válido, proteção da chave privada e acompanhamento da renovação.

O redirecionamento de HTTP para HTTPS deve fazer parte do planejamento. Teste o comportamento com os domínios utilizados e com eventuais componentes que ficam à frente do Nginx.

Proteja também o trecho interno

A conexão entre Nginx e aplicação é uma decisão separada. HTTPS no acesso público não significa que o trecho seguinte esteja criptografado. Quando esse tráfego atravessa redes que exigem proteção, considere TLS também até o serviço e configure a verificação de seu certificado.

Em uma área de clientes, por exemplo, o navegador pode acessar o proxy por HTTPS enquanto a aplicação aceita conexões apenas da rede autorizada. Firewall, interfaces de escuta e regras de rede devem impedir acesso direto indevido às portas internas.

Adapte os controles ao uso real:

  • Defina limites de upload compatíveis com os documentos enviados pelos usuários.
  • Avalie limites de requisições considerando picos legítimos e integrações.
  • Teste cabeçalhos de segurança com scripts, recursos incorporados e serviços externos do site.
  • Mantenha componentes atualizados e restrinja o acesso a arquivos sensíveis.

O proxy reverso não substitui autenticação, autorização ou correções no código. Esses cuidados continuam necessários dentro da aplicação e nos demais serviços.

Nginx com Docker, APIs e conexões WebSocket

Uma arquitetura com Nginx com Docker pode reunir frontend, API e atendimento em tempo real em containers separados. O Nginx recebe os acessos públicos e se comunica com os serviços por uma rede compartilhada.

Nessa rede, o destino pode ser identificado pelo nome do serviço, como api:3000. Dentro do container do Nginx, 127.0.0.1 aponta para esse próprio container, não para o container da API.

Containers recriados podem receber outro IP mantendo o nome do serviço. Confira como sua configuração do Nginx atualiza a resolução desses nomes; não presuma que um endereço resolvido anteriormente continuará válido.

O conteúdo sobre Docker para padronizar ambientes de desenvolvimento e produção complementa a organização dos serviços.

Rotas de API e comunicação em tempo real

Ao usar Nginx para APIs, defina se o serviço espera um prefixo de caminho ou um subdomínio próprio. Se frontend e API estiverem em origens diferentes, as regras de CORS continuam necessárias.

Conexões WebSocket exigem encaminhamento explícito dos cabeçalhos de upgrade. O trecho abaixo ilustra um location destinado exclusivamente a esse recurso, dentro de um bloco server:

location /socket/ {
    proxy_pass http://realtime:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

O exemplo mantém o caminho /socket/ e pressupõe que o serviço o reconheça. Adapte os demais cabeçalhos e controles à aplicação.

Timeouts e mensagens periódicas de manutenção da conexão precisam acompanhar o funcionamento do atendimento em tempo real. Teste períodos de inatividade, reconexões e reinicializações dos containers.

Balanceamento de carga, cache e arquivos estáticos

O balanceamento de carga com Nginx distribui requisições entre instâncias de uma aplicação. Um grupo upstream reúne os destinos que serão usados pelo proxy.

O exemplo considera duas instâncias HTTP no mesmo servidor. Tanto upstream quanto server ficam no contexto http:

upstream portal {
    server 127.0.0.1:3001;
    server 127.0.0.1:3002;
}

server {
    listen 80;
    server_name portal.exemplo.com;

    location / {
        proxy_pass http://portal;
    }
}

Esse trecho demonstra a distribuição, mas precisa dos demais ajustes de publicação. Duas instâncias no mesmo computador também não protegem contra a falha desse computador.

Compartilhe o estado necessário

Antes de escalar, verifique onde ficam sessões e arquivos enviados pelos usuários. Se esses dados estiverem apenas em uma instância, uma requisição atendida por outra poderá encontrar informações diferentes.

Um portal com login deve prever armazenamento adequado para o estado compartilhado, além de compatibilidade entre versões durante atualizações. Uma única instância do proxy também pode continuar sendo um ponto de falha.

Separe cache de distribuição de tráfego

Cache reaproveita respostas; balanceamento distribui trabalho. Para conteúdo público, estabeleça quais respostas podem ser armazenadas, por quanto tempo e como serão invalidadas. Exclua respostas privadas ou personalizadas das regras gerais.

Arquivos estáticos podem ter políticas próprias de expiração. Planeje a atualização de nomes ou versões para evitar que visitantes recebam arquivos antigos após uma publicação.

Avalie resultados com latência, taxa de erros e consumo de recursos, usando testes compatíveis com o tráfego esperado. Uma consulta lenta ao banco de dados pode continuar sendo o gargalo.

Erros comuns e como diagnosticar falhas no proxy

O diagnóstico deve começar pelo horário da falha, pela rota acessada e pelos registros do Nginx e da aplicação. Alterar parâmetros sem identificar a causa dificulta a investigação.

Sinais que ajudam a orientar a investigação
SintomaO que verificar
502 Bad GatewayConexão recusada, resposta inválida, porta incorreta ou problema na comunicação com o destino.
504 Gateway TimeoutEspera excedida na comunicação com o destino; correlacione o evento com a execução da aplicação.
404 em uma rota existenteCaminho recebido pela aplicação, prefixos removidos e regras de encaminhamento.
Loop de redirecionamentoProtocolo percebido pela aplicação e regras de redirecionamento em cada camada.

Se um erro 502 aparecer após recriar um container, confirme que a aplicação iniciou, que a porta está correta e que o endereço usado pelo Nginx corresponde ao destino atual. Teste a conectividade a partir do ambiente em que o proxy executa.

Consulte o log de erro para identificar a falha de comunicação. Use o log de acesso e os registros da aplicação para relacionar horário, rota e status, preservando dados sensíveis.

O artigo sobre logs e monitoramento para descobrir erros antes dos clientes aprofunda essa rotina de acompanhamento.

Aumentar timeouts pode ser adequado para uma operação legitimamente longa, mas não corrige indisponibilidade ou processamento ineficiente. Investigue a causa antes de prolongar a espera do usuário.

Como decidir a arquitetura para um site empresarial

A escolha do Nginx como proxy reverso deve partir dos serviços que precisam ser publicados e da capacidade de mantê-los. No planejamento de criação de sites em Recife, infraestrutura e desenvolvimento precisam acompanhar os requisitos do negócio.

Um site institucional pode ser atendido por uma hospedagem que já administra HTTPS e publicação. Um portal com login, API e atendimento em tempo real exige avaliar rotas, conexões persistentes, dados compartilhados e disponibilidade.

Antes de definir a arquitetura, organize estas decisões:

  1. Serviços: liste domínios, aplicações, integrações e portas internas.
  2. Dados: identifique respostas privadas, sessões e arquivos que precisam ser compartilhados.
  3. Disponibilidade: determine quanto tempo de interrupção o negócio consegue tolerar e avalie redundância.
  4. Operação: defina responsáveis por certificados, atualizações, logs e incidentes.
  5. Custos: considere infraestrutura e esforço de manutenção, incluindo recursos já oferecidos pela hospedagem.
  6. Mudanças: prepare validação, acompanhamento após a publicação e uma forma de restaurar a configuração anterior.

Uma arquitetura adequada permite entender o caminho das requisições e agir quando algo falha. O Nginx pode cumprir essa função de entrada, desde que sua configuração acompanhe as necessidades das aplicações.

Está planejando criar ou modernizar o site da sua empresa em Recife? Entre em contato pelo site da Codephix, em codephix.com, para conversar sobre o projeto e avaliar uma infraestrutura adequada às suas aplicações e integrações.

Voltar ao blogAtualizado em 13 de outubro de 2026

Pronto para conversar sobre o seu projeto?

A Codephix transforma desafios operacionais em sistemas que funcionam. Fale com a nossa equipe.

WhatsApp