NGINX Solution for Apache ProxyPassReverse

Apache

myhost:80とmyapp:8080の間に簡単なプロキシを建てたいとします。Apacheのルールは簡単です:

<VirtualHost myhost:80>
    ServerName myhost
    DocumentRoot /path/to/myapp/public
    ProxyPass / http://myapp:8080/
    ProxyPassReverse / http://myapp:8080/
</VirtualHost>

しかしNGINXはProxyPassReverseを持ちません... この解決方法は2,3の失われたHTTPヘッダを追加することです。

参照

proxy_redirect. このwikiは部分的に正しくありません。locationヘッダのrewriteをする必要がある場合は、proxy_redirectもする必要があるでしょう。

NGINX

server {
    listen myhost:80;
    server_name  myhost;
    location / {
        root /path/to/myapp/public;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://myapp:8080;
    }
}
TOP
inserted by FC2 system