にほんごのれんしゅう

日本語として伝えるための訓練を兼ねたテクログ

Raspberrypiのnginxのreverse proxyにhost名が継承されなかったので対応策

PHPフレームワークなどを使っていると、$_SERVER['HTTP_HOST']でホスト名を決定したりしてnginxの配下のリバースプロキシではうまく動作しなかったりする。

単純に指定のIPに飛ばすには以下のような設定をすればよい

        server {
                listen 80;
                server_name eiseikanri.*****.jp;
                client_max_body_size 1024M;
                access_log /tmp/access_frevo01.log;
                location / {
                        proxy_pass http://192.168.1.52:83;
                        index index.html index.php;
                }
        }

$_SERVER[‘HTTP_HOST’]などで不具合を出ないようにするには、location /ブロック配下に以下の二行を付け加える(raspberrypiのnginxのバージョンでは必要だった)

        server {
                listen 80;
                server_name eiseikanri.******jp;
                client_max_body_size 1024M;
                access_log /tmp/access_frevo01.log;
                location / {
                        proxy_pass http://192.168.1.52:83;
                        proxy_set_header X-Forwarded-Host $host; #追加
                        proxy_set_header host $host; #追加
                        index index.html index.php;
                }
        }