Quando usamos apache com o proxy reverso como frontend na hora de exibir o log de acesso do apache por padrão vemos o ip do Proxy-reverso, e não o do cliente final.
Uma forma de arruma isso é utilizar a flag “X-Forwarded-For” presente no cabeçalho HTTP.
Vou mostrar o exemplo com apache e o servidor proxy reverso com nginx:
No arquivo /etc/apache2/apache2.conf edite a linha “LogFormat”, no lugar do %h coloque “%{X-Forwarded-For}i”, lembrando de verificar qual log está usando no seus vhost’s, no meu caso estou usando o “combined”:
LogFormat “%v:%p %h %l %u %t \”%r\” %>s %O \”%{Referer}i\” \”%{User-Agent}i\”” vhost_combined
LogFormat “%v:%p %{X-Forwarded-For}i %c %l %u %t \”%r\” %>s %O \”%{Referer}i\” \”%{User-Agent}i\”” combined
Agora na configuração de proxy do nginx você deve colocar a Flag X-Forwareded-For:
location / {
proxy_pass https://127.0.0.1:4433;proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;# configurações de cache
proxy_cache portalhortolandia;
add_header X-Proxy-Cache $upstream_cache_status;}
Reinicie o serviço do Nginx e do apache e verifique o log do apache para ver se o ip original está aparecendo.