2008年6月10日火曜日

リバースプロキシの場合のPHPの $_SERVERの HOSTなど

普通に$_SERVER['HTTP_HOST']とやると、リバースプロキシの場合にはアクセスしてきたURLのドメイン部分ではなく、PHPが動いているサーバのIPアドレスを取得してしまう。

リバースプロキシでURLのドメイン部分を取得するには、$_SERVER['HTTP_HOST']の代わりに$_SERVER['HTTP_X_FORWARDED_HOST']を使う。

クライアントのIPアドレスを取得したい場合も同様に、$_SERVER['REMOTE_ADDR']の代わりに$_SERVER['HTTP_X_FORWARDED_FOR']を使う。

具体的な例は、DevSyndicate. - こういう場合を想定-リバースプロキシしたときの$_SERVER-WIKIがわかりやすい。

マニュアルに載ってない(※note欄には載っている)し、"X"が付いているのでまだBeta版的な扱いなのかな?

0 件のコメント:

コメントを投稿