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もする必要があるでしょう。
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;
}
}