リバースプロキシ †
設定項目 †
proxy_redirect off;
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_pass
- プロキシ先のサーバのURI を指定
- 設定例:proxy_pass http://localhost:8080/;
- Host ヘッダがリクエストに含まれていなかったら proxy_pass の値が使われるので、ちゃんと送りたければ「proxy_set_header Host $host」を設定すること
- proxy_set_header Host
- Host ヘッダを指定
- 設定例:proxy_set_header Host $host
- proxy_set_header X-Real-IP
- proxy_set_header X-Forwarded-Host
- オリジナルのホスト名。クライアントが Host リクエストヘッダで渡す。
- proxy_set_header X-Forwarded-Server
- proxy_set_header X-Forwarded-For
nginx-proxy †
- nginx-proxy
- 複数のサービスはそれぞれのコンテナで動いているので、各リクエストを振り分けるリバースプロキシが必要
- nginx-proxyを使うと立ち上がっているDockerコンテナに自動的に振り分けを行うことができる
利用例 †
# docker run -d -p 8080:80 -v /var/run/docker.sock:/tmp/docker.sock:ro docker.io/jwilder/nginx-proxy
- localhost:8080 <=> nginx-proxy:80