Sto eseguendo un front-end Nginx per i file statici e inoltro a un back-end Apache per PHP e Passenger, usando mod_rpaf di Apache per impostare l'indirizzo IP remoto corretto sul back-end. Tutto ha funzionato bene fino a quando non ho eseguito l'aggiornamento a Ubuntu 12.04 (Preciso). Ora Apache riporta tutte le connessioni provenienti da 127.0.0.1.
Ecco la configurazione rilevante. Qui non è cambiato nulla con l'aggiornamento.
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>
Sto usando la %{X-Forwarded-For}i
mia direttiva LogFormat di Apache e i log di accesso mostrano l'indirizzo remoto corretto, quindi so che Nginx sta trasmettendo correttamente l'indirizzo.
In un phpinfo()
test, HTTP_X_FORWARDED_FOR mostra l'indirizzo remoto corretto, ma REMOTE_ADDR è 127.0.0.1. Ciò si riflette anche nelle applicazioni PHP, come i commenti di WordPress.
Ho provato a cambiare Nginx e mod_rpaf in X-Real-IP senza alcun effetto.
È cambiato qualcosa che mi mancava?
Informazioni sulla versione rilevanti, tutto installato dal repository Ubuntu:
Nginx 1.1.19
Apache 2.2.22
mod_rpaf 0.6