Apache-2.2
Ubuntu 升級後 Nginx 前端、Apache 後端的 mod_rpaf 問題
我正在為靜態文件執行 Nginx 前端,並為 PHP 和 Passenger 代理到 Apache 後端,使用 Apache 的 mod_rpaf 在後端設置正確的遠端 IP 地址。一切正常,直到我升級到 Ubuntu 12.04(精確)。現在 Apache 報告來自 127.0.0.1 的所有連接。
這是相關的配置。升級後這裡沒有任何變化。
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>
我
%{X-Forwarded-For}i
在我的 Apache LogFormat 指令中使用,並且訪問日誌顯示了正確的遠端地址,所以我知道 Nginx 正在正確地傳遞地址。在
phpinfo()
測試中,HTTP_X_FORWARDED_FOR 顯示正確的遠端地址,但 REMOTE_ADDR 是 127.0.0.1。這也反映在 PHP 應用程序中,例如 WordPress 評論。我試過將 Nginx 和 mod_rpaf 切換到 X-Real-IP 沒有任何效果。
我錯過了什麼改變了嗎?
相關版本資訊,從 Ubuntu 儲存庫安裝的所有內容:
Nginx 1.1.19
Apache 2.2.22
mod_rpaf 0.6
我自己一直在處理這個。週五確認了一個 Ubuntu 錯誤。你可以通過改變來讓事情重新開始:
<IfModule mod_rpaf.c>
到
<IfModule mod_rpaf-2.0.c>
在 /etc/apache2/mods-available/rpaf.conf
mod_rpaf 似乎在 Debian Jessie 中已被棄用,進一步的開發也停止了。切換到 mod_remoteip,這是 Debian Jessie 中的預設模組。