私はすでにこのトピックに関する多くの記事を読んで、いくつかのソリューションを試しましたが、機能するスロットを見つけられませんでした。REMOTE_ADDR代わりにNginxリバースプロキシサーバーからユーザーからのIP
Apacheサーバの前にNginxリバースプロキシを設定しました。私のPHPアプリケーションは、REMOTE_ADDR関数を使用すると、代わりにNginxサーバーのIPを取得します。
私はApache 2.4.10を使用していますので、module_remoteip.cをインストールする必要があります。しかし、それは読み込まれていません。
したがって、私はrpaf_moduleをインストールしました。 phpinfo()mod_rpaf-2がロードされたモジュールと共に表示されているので、このモジュールが正しくインストールされているようです。このような
<IfModule rpaf_module>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 172.19.0.5 # ip of Nginx server
RPAFheader X-Forwarded-For
</IfModule>
私のnginxの設定を見て:
location/{
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass 172.19.0.4;
}
ヘルプは高く評価され、私は次の内容の/etc/apache2/mods-available/rpaf.confファイルを修正しましたか?
これは正しいですが、私は変更したくありません私のSymfony2のソースコードとそのコードの標準を保つ。 – Tom
@Tom私は自分の答えを更新しました。 – thepieterdc
あなたの例に変更してNginxとApacheをリセットした後も、NginxのIPアドレスを取得しています。 – Tom