Se você quer que o Apache atue como um proxy reverso (encaminhando requisições para outro serviço na rede ou no próprio host), este post entrega o necessário, direto ao ponto.
Vamos assumir um caso comum: você quer que qualquer requisição para http://seuip/ollama/
seja redirecionada internamente para http://localhost:11434/
.
Configuração do VirtualHost
Abra o arquivo de configuração apropriado (geralmente em /etc/apache2/sites-available/000-default.conf
ou outro .conf
da sua preferência) e adicione:
<VirtualHost *:80>
ServerName 10.0.0.68
ProxyPreserveHost On
ProxyPass /ollama/ http://localhost:11434/ retry=0
ProxyPassReverse /ollama/ http://localhost:11434/
DocumentRoot /var/www/html
</VirtualHost>
Esse trecho diz:
- Escute na porta 80.
- Encaminhe tudo que vier para
/ollama/
para o serviço interno rodando emlocalhost:11434
. - Preserve o cabeçalho
Host
original. - Corrija redirecionamentos e cabeçalhos de resposta.
Habilitando os módulos necessários
Para isso funcionar, o Apache precisa dos módulos:
a2enmod proxy
a2enmod proxy_http
E depois:
systemctl restart apache2
Sem esses módulos, o Apache não reconhece as diretivas ProxyPass
e ProxyPassReverse
.
Testando
- Acesse:
http://10.0.0.68/ollama/
- O Apache encaminhará a requisição para o serviço local (
localhost:11434
) mantendo o controle externo pela porta 80.
Segurança (opcional, mas recomendada)
Para uso em ambiente real, considere:
- HTTPS com Let’s Encrypt ou certificado self-signed.
- Autenticação básica com
.htpasswd
. - Restrição de IP com
Require ip
. - Rate limiting com
mod_ratelimit
ou integração com firewall.
Esse tipo de proxy é ideal para mascarar serviços, unificar múltiplos backends sob um domínio ou manipular requisições antes de chegar ao destino real.