Apache-2.2

Ubuntu 升級後 Nginx 前端、Apache 後端的 mod_rpaf 問題

  • February 15, 2017

我正在為靜態文件執行 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 中的預設模組。

引用自:https://serverfault.com/questions/393207