現在、Nginxで複数ドメインからのアクセスで同じ場所にある
PHPスクリプトを稼働させるために、
Nginxの設定ファイルで以下のように記述しております。
lang
1server { 2 listen 80; 3 server_name ~(.+)$; 4 5 # 各種設定 6}
セキュリティの面で言えば、全てのドメインを受け付けるのは
好ましくないと思われますが、こちらに例示するための
暫定的な正規表現となります。
この設定により、稼働させているサーバのIPアドレスに向けられた
ドメインは全てPHPスクリプトが動くようにはなったのですが、
PHPのサーバ変数に関して、意図しない問題が発生してしまいました。
PHPスクリプト内で、サーバ変数 $_SERVER['SERVER_NAME']を
利用してドメインを取得していたのですが、
その値がNginxの設定ファイルで記述した正規表現の「~(.+)$」
になってしまうというものです。
現在は代替手段として、$_SERVER["HTTP_HOST"]でドメインを
取得するようにしたのですが、利用している外部ライブラリでも
$_SERVER['SERVER_NAME']でドメインを取得する想定で
使われている箇所が結構ありましたので、
$_SERVER['SERVER_NAME']のまま元のドメインの情報を
取得する方法を探しております。
ちなみに、Nginxの方で「server_name_in_redirect」という
設定があったので、 「on」と「off」の両方で試してみましたが、
取得できる値は変わりませんでした。
もう1点、サーバ自身のIPアドレスを取得する目的で、
$_SERVER['SERVER_ADDR']を使っていましたが、
こちらも外部のグローバルIPは取得できませんでした。
Nginxから内部でPHP-FPMに接続する際に置き換わってしまう
のだと思うのですが、大元のドメインやサーバIPの情報を
PHPのサーバ変数に受け渡すことはできるのでしょうか?
ご存じの方がいらっしゃいましたら、教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/01/20 12:23
2015/01/20 12:30
2015/01/20 12:33
2015/01/20 12:54