Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

O que é Servidor Proxy Reverso e Como Configurá-lo

10 min de leitura  ·  Guia técnico

Servidor proxy reverso é um intermediário que recebe requisições de clientes e as encaminha para servidores backend, retornando as respostas aos clientes como se fossem originadas do próprio proxy. Ele oferece benefícios como balanceamento de carga, cache e segurança, sendo amplamente usado em arquiteturas web modernas para melhorar performance e disponibilidade.

Pré-requisitos

  • Servidor Linux com Ubuntu 22.04 LTS ou CentOS 8
  • Acesso root ou usuário com privilégios sudo
  • Nginx 1.24 ou Apache 2.4 instalado
  • Conhecimento básico de configuração de servidores web
  • Pelo menos um servidor backend funcionando

Como funciona um servidor proxy reverso

O proxy reverso atua como uma camada intermediária entre clientes externos e servidores internos. Quando um usuário faz uma requisição, ela primeiro chega ao proxy reverso, que então decide para qual servidor backend encaminhar a solicitação baseado em regras pré-configuradas.

O fluxo básico funciona da seguinte forma: o cliente envia uma requisição HTTP para o que acredita ser o servidor web final, mas na verdade está se comunicando com o proxy reverso. Este analisa a requisição, seleciona o servidor backend apropriado, encaminha a solicitação e retorna a resposta ao cliente.

Para configurar um proxy reverso básico com Nginx, edite o arquivo de configuração:

sudo nano /etc/nginx/sites-available/proxy-reverso

Adicione a seguinte configuração:

server {
    listen 80;
    server_name exemplo.com;
    
    location / {
        proxy_pass http://192.168.1.100:8080;
        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;
    }
}

Ative a configuração e reinicie o Nginx:

sudo ln -s /etc/nginx/sites-available/proxy-reverso /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Output esperado após a configuração:

nginx: configuration file /etc/nginx/nginx.conf test is successful

Principais benefícios do proxy reverso

O balanceamento de carga é um dos principais benefícios, distribuindo requisições entre múltiplos servidores backend para evitar sobrecarga. Isso melhora significativamente a disponibilidade e performance da aplicação.

O cache de conteúdo estático reduz drasticamente o tempo de resposta. O proxy reverso pode armazenar temporariamente arquivos CSS, JavaScript, imagens e outros recursos, servindo-os diretamente sem consultar o servidor backend.

Para configurar cache no Nginx, adicione as seguintes diretivas:

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    proxy_pass http://backend;
    proxy_cache my_cache;
    proxy_cache_valid 200 1h;
    proxy_cache_use_stale error timeout updating;
    add_header X-Cache-Status $upstream_cache_status;
}

A terminação SSL centraliza o gerenciamento de certificados. O proxy reverso pode descriptografar conexões HTTPS e encaminhar requisições HTTP para servidores backend, reduzindo a carga computacional nos servidores de aplicação.

Configure SSL no proxy reverso:

server {
    listen 443 ssl;
    server_name exemplo.com;
    
    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;
    
    location / {
        proxy_pass http://backend;
        proxy_set_header X-Forwarded-Proto https;
    }
}

Configuração avançada com balanceamento de carga

Para implementar balanceamento de carga eficiente, configure múltiplos servidores backend no upstream do Nginx:

upstream backend_pool {
    least_conn;
    server 192.168.1.100:8080 weight=3;
    server 192.168.1.101:8080 weight=2;
    server 192.168.1.102:8080 backup;
    
    keepalive 32;
}

O método least_conn direciona requisições para o servidor com menor número de conexões ativas. O parâmetro weight define a proporção de requisições que cada servidor receberá, enquanto backup marca um servidor como reserva.

Para monitoramento de saúde dos servidores backend, adicione verificações de health check:

upstream backend_pool {
    server 192.168.1.100:8080 max_fails=3 fail_timeout=30s;
    server 192.168.1.101:8080 max_fails=3 fail_timeout=30s;
}

Configure também timeouts apropriados para evitar conexões pendentes:

location / {
    proxy_pass http://backend_pool;
    proxy_connect_timeout 5s;
    proxy_send_timeout 10s;
    proxy_read_timeout 10s;
}

Segurança e proteção com proxy reverso

O proxy reverso oferece uma camada adicional de segurança ocultando a infraestrutura backend dos clientes externos. Atacantes não conseguem acessar diretamente os servidores de aplicação, reduzindo a superfície de ataque.

Implemente rate limiting para prevenir ataques de força bruta e DDoS:

http {
    limit_req_zone $binary_remote_addr zone=login:10m rate=1r/s;
    limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
}

server {
    location /login {
        limit_req zone=login burst=5 nodelay;
        proxy_pass http://backend;
    }
    
    location /api/ {
        limit_req zone=api burst=20 nodelay;
        proxy_pass http://backend;
    }
}

Configure headers de segurança para proteger contra ataques comuns:

add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
add_header Referrer-Policy "strict-origin-when-cross-origin";

Para filtrar requisições maliciosas, use o módulo ModSecurity ou configure regras básicas no Nginx:

location / {
    if ($request_method !~ ^(GET|HEAD|POST)$ ) {
        return 405;
    }
    
    if ($http_user_agent ~* (bot|crawler|spider)) {
        return 403;
    }
    
    proxy_pass http://backend;
}

Problemas comuns e como resolver

Erro 502 Bad Gateway

Causa: Servidor backend inacessível ou sobrecarregado, configuração incorreta de upstream, ou firewall bloqueando conexões internas.
Solução: Verifique se os servidores backend estão funcionando com curl http://ip-backend:porta, confirme as configurações de upstream no Nginx e verifique logs com sudo tail -f /var/log/nginx/error.log.

Timeout de conexão frequente

Causa: Valores de timeout muito baixos, latência alta entre proxy e backend, ou sobrecarga nos servidores de aplicação.
Solução: Aumente os valores de proxy_connect_timeout, proxy_send_timeout e proxy_read_timeout para 30s ou mais, dependendo da aplicação.

Headers perdidos ou incorretos

Causa: Configuração inadequada de headers proxy, causando problemas de autenticação ou detecção de IP real.
Solução: Configure corretamente os headers essenciais: proxy_set_header Host $host, proxy_set_header X-Real-IP $remote_addr e proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for.

Cache servindo conteúdo desatualizado

Causa: Configuração de cache muito agressiva ou falta de invalidação adequada quando conteúdo é atualizado.
Solução: Ajuste os tempos de proxy_cache_valid, implemente purge de cache quando necessário e use headers apropriados como Cache-Control nos servidores backend.

Perguntas frequentes sobre servidor proxy reverso

Qual a diferença entre proxy e proxy reverso?

Proxy tradicional atua em nome do cliente, ocultando sua identidade do servidor. Proxy reverso atua em nome do servidor, ocultando a infraestrutura backend dos clientes. O proxy reverso fica entre a internet e os servidores web, enquanto o proxy comum fica entre o cliente e a internet.

Nginx ou Apache é melhor para proxy reverso?

Nginx é mais eficiente para proxy reverso devido à sua arquitetura assíncrona e menor uso de memória. Apache funciona bem mas consome mais recursos. Para alta concorrência, Nginx é preferível, enquanto Apache oferece mais módulos e flexibilidade de configuração.

Proxy reverso melhora a performance do site?

Sim, proxy reverso melhora performance através de cache de conteúdo estático, compressão de dados e balanceamento de carga entre múltiplos servidores. Pode reduzir tempo de resposta em 30-70% dependendo do tipo de conteúdo e configuração implementada.

É possível usar proxy reverso com SSL?

Sim, proxy reverso pode terminar conexões SSL/TLS, descriptografando requisições HTTPS antes de encaminhar para servidores backend via HTTP. Isso reduz carga computacional nos servidores de aplicação e centraliza gerenciamento de certificados SSL.

Quando não usar proxy reverso?

Evite proxy reverso em sites simples com baixo tráfego, aplicações que requerem conexões persistentes específicas, ou quando a latência adicional impacta negativamente a performance. Para sites estáticos pequenos, o overhead pode superar os benefícios.

Conclusão

  • Configure proxy reverso para melhorar performance, segurança e disponibilidade de aplicações web
  • Implemente balanceamento de carga e cache para otimizar recursos e reduzir tempo de resposta
  • Monitore logs regularmente e ajuste configurações conforme necessário para manter estabilidade

Precisa de ajuda com configuração de proxy reverso?

Nossa equipe especializada pode configurar e otimizar proxy reverso em seu servidor VPS, garantindo máxima performance e segurança. Oferecemos suporte completo para implementação de balanceamento de carga e cache avançado.

Conheça nossos planos de VPS otimizados

  • 0 Os usuários acharam isso útil
  • proxy-reverso, nginx, apache, balanceamento-carga, cache, seguranca, performance, AviraHost
Esta resposta foi útil?

Artigos Relacionados

Instalando painel de gerenciamento de hospedagem VirtualMin.

O virtualmin é um painel de gerenciamento de hospedagem de sites gratuito, que é suportado por...

Como usar a ferramenta oficial de acesso remoto do Windows no PC e celular

1. Pelo menu Iniciar, acesse os “Acessórios do Windows” e abra o “Conexão de Área de Trabalho...

Como acessar o painel de gerenciamento dos meus Serviços.

Para acessar o painel de gerenciamento do seu serviço basta seguir o passo á passo abaixo.   1....

Compreendendo o Servidor VPS: O que é e Como Funciona!

Um servidor VPS (Virtual Private Server) é uma solução de hospedagem na qual um servidor físico é...

Como trocar a senha do usuário root do servidor VPS ou Dedicado.

Para trocar a senha do usuário root em um servidor VPS da AviraHost, você pode seguir os...