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
Hostoriginal. - 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_ratelimitou 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.
