Como fazer proxy reverso pelo .htaccess

LiteSpeed Web Server com Proxy Reverso

Se você utiliza uma aplicação em linguagens que constroem seu próprio servidor Web, como o NodeJS (JavaScript) e o Golang, por exemplo.

Por construírem seus próprios Web Servers, é possível que não seja possível direcionar o uso dessas aplicações diretamente para as portas padrão da Web, como a 80 e a 443 (para SSL), sendo necessário usar portas diferentes.

O problema de usar essas portas é que, sem uma configuração extra, o seu domínio não irá reconhecê-la e levar o usuário direto ao site que funcionará através dessa porta específico. Por isso temos o proxy reverso, para interpretar o domínio e alocá-lo diretamente à porta que você definiu.

A importância de fazer isso é porque o LiteSpeed (nosso Web Server) já funciona nas portas 80 e 443 que mencionamos anteriormente, impedindo que outra aplicação utilize ela. Por isso, é preciso definir uma porta diferente, através do proxy reverso.

Como funciona o proxy reverso?

Em um cenário comum de um WordPress, por exemplo, podemos acessar o site simplesmente ao digitar seu domínio, algo como http://meusite.com.br, certo?

Ao fazermos isso, estamos enviando uma requisição ao servidor, que irá nos direcionar a obter o conteúdo de uma porta específica que, normalmente, será a porta 80 para http e 443 para https, esse é o padrão nas hospedagens cPanel.

Contudo, ao rodar uma aplicação diferente, normalmente será usada uma porta diferente, e você não conseguiria acessar diretamente o domínio ao acessar o http://meusite.com.br, sendo necessário usar o http://meusite.com.br:3000 (porta 3000, como um exemplo), o que é particularmente antiprático.

E é aí que entra o nosso amigo Proxy Reverso. Quando configurado, ele é capaz de direcionar de forma inteligente e invisível ao usuário final o domínio para uma porta à sua escolha. Se usar a porta 3000, por exemplo, você pode configurar o proxy reverso para automaticamente redirecionar os usuários para trafegar por essa porta sem mostrar isso no URL.

Como configurar o proxy reverso no htaccess?

Para configurá-lo, o processo é realmente muito simples! Vamos apenas adicionar algumas diretivas no nosso arquivo .htaccess que vão “escutar” um domínio e redirecionar o tráfego dele para uma porta.

Com escutar, nos referimos a qual domínio essa regra vai se aplicar, qual será monitorado para que a regra se aplique. O código é definido da seguinte forma:

RewriteEngine On

# Redireciona todo o tráfego da raiz para a porta 5444
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ http://127.0.0.1:5444/$1 [P,L]

No caso acima, será redirecionado todo o tráfego do seu domínio na raiz para a porta 5444, mas isso pode ser um problema para sites que não tenham apenas página principal. Se você tiver páginas internas, por exemplo, esse código pode não ser bom para você.

Esse outro abaixo, por outro lado, redireciona todo o tráfego recebido para a porta de exemplo, garantindo o funcionamento de páginas internas.

RewriteEngine On

# Redireciona todo o tráfego para a porta 5444
RewriteRule ^(.*)$ http://localhost:5444/$1 [P,L]

Tome cuidado com o redirecionamento de todo o tráfego caso esteja usando mais de um domínio na mesma hospedagem, já que se eles estiverem no mesmo diretório (pastas), ambos podem se sujeitar às configurações do mesmo htaccess.

Como funciona

Ativa as configurações de reescrita de URL com o RewriteEngine On e, na sequência, determina qual parâmetro de tráfego será redirecionado, aí variando entre todo o tráfego ou apenas a home.

Com isso pronto, agora sempre que um usuário acessar (http ou) https://meusite.com ele está, na verdade, vendo o conteúdo que o seu servidor está carregando a partir de https://meusite.com:5444

A porta 5444 foi usada de exemplo no artigo, consulte nosso suporte para saber quais portas estão disponíveis para uso no servidor de sua hospedagem e contate o seu programador para saber qual a porta correta que sua aplicação está configurada para usar.

Você está precisando de ajuda?

Saiba que sempre será um prazer te ajudar! Nossa equipe de suporte está disponível à você! Por isso, caso precise de auxilio, saiba que pode contar conosco! Envie-nos um ticket para que nosso time de especialista consiga lhe auxiliar da melhor maneira possível. Você precisa de ajuda de como abrir um ticket? Leia esse artigo.


Conseguimos te ajudar?
Loading spinner
Encontrou sua resposta?