10.04.2026

Como implantar e configurar um servidor proxy reverso

Entre os diversos serviços de infraestrutura que compõem um sistema corporativo unificado, está o proxy. Sua principal função é atuar como um nó intermediário na transmissão de tráfego, além de executar funcionalidades previamente definidas, como modificação e inspeção das conexões.

Existem dois tipos dessas soluções: proxy direto (forward proxy) e proxy reverso (reverse proxy). O primeiro redireciona o tráfego para fora através de um único ponto, enquanto o segundo faz o oposto - direciona o tráfego do segmento externo para o interno. Neste artigo, vamos analisar a segunda opção e configurar o serviço para funcionamento.

O que é um Reverse Proxy?

Como mencionamos anteriormente, um Reverse Proxy é um nó intermediário por meio do qual o tráfego externo passa antes de chegar aos servidores, ou seja, vindo dos clientes.

Nesses casos, essa solução é utilizada devido à necessidade de balancear a carga entre os nós, já que o processamento dos próprios pacotes pode ser bastante pesado. Assim, diferentes abordagens de balanceamento ajudam a reduzir esse impacto. Além disso, o proxy pode atuar como um ponto de controle do tráfego, por exemplo, como um WAF local ou como um nó de redirecionamento para servidores ICAP.

Caso você não tenha recursos suficientes, é possível executar essas tarefas em servidores em nuvem mais potentes. A Serverspace oferece servidores VPS/VDS isolados para uso geral e virtualização.

Implantação e configuração

Antes de tudo, vamos escolher um pacote de software que execute funções de proxy. Normalmente, servidores web simples já possuem essa funcionalidade, então utilizaremos o pacote Nginx:

Em seguida, passamos para a configuração do nosso serviço no diretório padrão /etc/nginx. Dentro dele, nos interessam dois arquivos responsáveis pela configuração global do serviço e pelos hosts virtuais.

Vamos focar no segundo:

cd /etc/nginx/sites-available && nano 000-default.conf

Se o arquivo de hosts virtuais tiver um nome diferente, abra-o com o nano (ou outro editor de sua preferência). Vamos analisar a sintaxe básica de um host virtual, que é determinada pelo campo SNI no pacote de rede de entrada:

server {
listen ip:port;
server_name domain_name;
root /path/to/site-file;
index /index.html;
..
location / {}
..
}

Preencha os campos básicos com os dados do seu servidor web: em qual porta o site estará disponível, qual domínio será atendido, entre outros. Observe que o campo location será responsável por definir como o servidor irá tratar as requisições recebidas no caminho especificado.

Até aqui, temos um servidor web comum. Para transformá-lo em um reverse proxy, é necessário adicionar diretivas dentro do bloco location:

location /date {
proxy_pass http://192.168.1.10:80;
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;
}

Para entender a diferença entre um reverse proxy e um servidor web comum, compare as diretivas dos dois caminhos /hello e /cats. No segundo caso, especificamos o diretório onde os dados estão armazenados, enquanto no primeiro fazemos o proxy da conexão.

Observe que a diretiva proxy_pass permite estabelecer uma conexão com um recurso e, como cliente, encaminhar as requisições, modificando-as com a diretiva proxy_set_header.

Cada um desses cabeçalhos tem sua função:

Após serem modificadas, as requisições são enviadas para o Upstream ou Backend, onde serão processadas pela aplicação web.

Agora, vamos salvar o arquivo e criar um link para que a configuração seja carregada automaticamente:

ln -s /etc/nginx/sites-available/000-default.conf /etc/nginx/sites-enabled/000-default.conf

Ou substitua pelo nome do seu próprio arquivo e crie também um link para o diretório de configurações habilitadas. Em seguida, reinicie o Nginx ou faça com que ele recarregue a configuração:

sudo systemctl restart nginx && sudo systemctl status nginx

Como o servidor Nginx escuta em todas as interfaces por padrão, todo o tráfego que chega ao dispositivo será encaminhado (proxy) para o backend. Caso seja necessário realizar a terminação antecipada de SSL (SSL termination), adicione as diretivas apropriadas para o seu processamento:

ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

Após isso, o tráfego será transmitido em texto aberto, permitindo que outras soluções possam processar os pacotes recebidos.

Além disso, na nossa base de conhecimento você pode encontrar materiais sobre como configurar um WAF com base em uma solução de Reverse Proxy como esta.

Conclusão

Configurar um servidor Reverse Proxy é um passo essencial para uma infraestrutura web moderna. Ao atuar como intermediário entre clientes externos e servidores internos, o reverse proxy melhora o balanceamento de carga, aumenta a segurança e permite a terminação de SSL.

Usando o Nginx como exemplo, configuramos um reverse proxy capaz de encaminhar requisições, preservar os cabeçalhos do cliente e oferecer suporte a tráfego SSL. Com essa configuração, seus servidores internos permanecem protegidos enquanto lidam com requisições externas de forma eficiente.

Além disso, os reverse proxies abrem oportunidades para a integração de camadas adicionais de segurança, como WAF, cache e monitoramento de tráfego.

FAQ