Mod_rpaf: Recebendo ip do cliente no Apache backend

Mod_rpaf: Recebendo ip do cliente no Apache backend

Quando usamos o nginx como proxy reverso com o apache no backend, o ip do cliente que apache recebe em seus logs é o do nginx. Desta forma, o log do apache e a aplicação rodando nesse backend irá receber o mesmo ip do servidor nginx e não do cliente que acessou o serviço. Como consequência, surgem diversos problemas, principalmente quando tentamos identificar as requisições, seja por segurança ou para própria utilização da aplicação.

Para contornar o problema, o nginx possui o parâmetro HTTP X-Forwarded-For header que encaminhar o ip real do cliente para o apache. No entanto, o apache não resolve isso por padrão e para reconhecer o ip do cliente enviado pelo nginx é preciso instalar o módulo mod_rpaf.

Instalação

A instalação do mod_rpaf no Debian/Ubuntu é simples, basta executar o comando abaixo:

apt-get install libapache2-mod-rpaf

Uma vez instalado, é preciso configurar o arquivo /etc/apache/mods-enable/mod_rpaf.conf alterando o parâmetro RPAFproxy_ips para o ip do nginx. Neste caso, 127.0.0.1.

<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1
</IfModule>
mod_rpaf.conf - alterar parâmetro RPAFproxy_ips para ip do seu servidor nginx.

Agora reinicie o apache para que ele receba o endereço de ip correto nos logs de acesso.

service apache2 restart

Se ainda assim não funcionar. Verifique se as configurações do proxy reverso no nginx possui os parâmetros abaixo:

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Fontes:

NGINX Docs | NGINX Reverse Proxy
Configure NGINX as a reverse proxy for HTTP and other protocols, with support for modifying request headers and fine-tuned buffering of responses.
Module ngx_http_proxy_module
- Advertisement -

You might also like

Você se inscreveu com sucesso em InfraOps
Ótimo! Em seguida, conclua a compra para obter acesso total a todo o conteúdo premium.
Bem vindo de volta! Você fez login com sucesso.
Não foi possível conectar você. Tente novamente.
Sucesso! Sua conta está totalmente ativada, agora você tem acesso a todo o conteúdo.
Sucesso! Suas informações de faturamento estão atualizadas.
Falha na atualização das informações de faturamento.