Apenas tenho lidado com isso eu mesmo. Houve um bug do Ubuntu confirmado na sexta-feira. Você pode fazer as coisas funcionarem novamente:
<IfModule mod_rpaf.c>
para
<IfModule mod_rpaf-2.0.c>
em /etc/apache2/mods-available/rpaf.conf
Estou executando um front-end Nginx para arquivos estáticos e fazendo proxy para um backend do Apache para PHP e Passenger, usando o mod_rpaf do Apache para definir o endereço IP remoto correto no backend. Tudo funcionou bem até que eu atualizei para o Ubuntu 12.04 (Precise). Agora o Apache relata todas as conexões vindas do 127.0.0.1.
Aqui está a configuração relevante. Nada mudou aqui com a atualização.
Nginx:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
mod_rpaf:
<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 ::1
RPAFheader X-Forwarded-For
</IfModule>
Estou usando %{X-Forwarded-For}i
na minha diretiva Apache LogFormat e os logs de acesso são
mostrando o endereço remoto correto, então eu sei que o Nginx está passando o endereço corretamente.
Em um teste phpinfo()
, HTTP_X_FORWARDED_FOR está mostrando o endereço remoto correto, mas REMOTE_ADDR é 127.0.0.1. Isso se reflete em aplicativos PHP, como comentários do WordPress.
Eu tentei trocar o Nginx e o mod_rpaf para o X-Real-IP sem nenhum efeito.
Alguma coisa mudou e eu senti falta?
Informação relevante sobre a versão, tudo instalado a partir do repositório do Ubuntu:
Nginx 1.1.19
Apache 2.2.22
mod_rpaf 0.6
O mod_rpaf parece ter sido preterido no Debian Jessie e o desenvolvimento posterior foi interrompido. Mude para o mod_remoteip, que é um módulo padrão no Debian Jessie.
Apenas uma atualização para esta pergunta. O formato das variáveis mod_rpaf foi alterado - o Apache se recusará a iniciar com os listados acima atualmente (RPAFenable, RPAFsethostname, RPAFproxy_ips, RPAFheader).
O novo formato é o seguinte:
LoadModule rpaf_module modules/mod_rpaf.so
RPAF_Enable On
RPAF_ProxyIPs 127.0.0.1 10.0.0.0/24
RPAF_SetHostName On
RPAF_SetHTTPS On
RPAF_SetPort On
RPAF_ForbidIfNotProxy Off
Tags proxy nginx apache-2.2 ubuntu mod-rpaf