Ubuntuアップグレード後のNginxフロント、Apacheバックエンドでのmod_rpafの問題


10

静的ファイル用のNginxフロントエンドを実行しており、Apacheのmod_rpafを使用してバックエンドに正しいリモートIPアドレスを設定することにより、PHPおよびPassenger用のApacheバックエンドにプロキシしています。Ubuntu 12.04(Precise)にアップグレードするまで、すべてが問題なく動作しました。これで、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です。これは、WordPressコメントなどのPHPアプリケーションにも反映されます。

Nginxとmod_rpafをX-Real-IPに切り替えても効果はありません。

見逃した変更はありましたか?

関連するバージョン情報、Ubuntuリポジトリからインストールされるすべて:

Nginx 1.1.19
Apache 2.2.22
mod_rpaf 0.6

回答:


10

自分でこれを扱っているだけです。金曜日に確認されたUbuntuのバグがありました。変更することで物事を再び機能させることができます:

<IfModule mod_rpaf.c>

<IfModule mod_rpaf-2.0.c>

/etc/apache2/mods-available/rpaf.conf


12.04にアップグレードした後もまったく同じ問題が発生し、この投稿が見つかる前に問題で半日分を失いました。ありがとうございました!
Kouber Saparev 2012

そして、バグ自体、完全性について:bugs.launchpad.net/ubuntu/+source/libapache2-mod-rpaf/+bug/...
トール

1
14.04へのアップグレード後にこの投稿にアクセスする人には、この修正は適用されなくなります。代わりにあなたが使用したいと思うでしょうmod_remoteip代わりにmod_rpaf
Stefan Magnuson 2014

1

mod_rpafはDebian Jessieで非推奨になり、さらなる開発は中止されました。Debian Jessieのデフォルトモジュールであるmod_remoteipに切り替えます。


0

この質問の更新です。mod_rpafが使用する変数の形式が変更されました-Apacheは現在上記のもの(RPAFenable、RPAFsethostname、RPAFproxy_ips、RPAFheader)から開始することを拒否します。

新しい形式は次のとおりです。

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.