nginx proxy

proxy_redirect

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect
http://www2.matsue-ct.ac.jp/home/kanayama/text/nginx/node68.html

location / {
    proxy_pass http://unix:/var/run/varnish.sock;
    proxy_redirect default; 
}
は
    proxy_pass http://unix:/var/run/varnish.sock;
    # do nothing
    proxy_redirect http://unix:/var/run/varnish.sock /;
    proxy_redirect http:// https://;

ポイントは proxy_redirect http:// https://; の行。後ろが頭のいい奴(例:Rails)だと、X-Forwarded-Proto を見てよしなにヘッダを吐いてくれるんだけど、X-Forwarded-Proto 見てくれない奴が裏側にいる場合には、これで Location ヘッダなんかを強制的に https:// に書き換える必要がある。

nginx で SSL解きリバースプロキシな設定のお作法 - Qiita 2013

nginx でコンテキストパス未対応サービスをリバースプロキシさせてみた(proxy_redirect + sub_filter) - Qiita

nginx proxy_pass

https://coderwall.com/p/rlguog/nginx-as-proxy-for-amazon-s3-public-private-files

nginxの仕様としてproxy_passに名前を使っている場合、その名前解決はnginx起動時に行われる。そしてそのときに取得したIPはnginxにキャッシュされてnginxの再起動もしくはHUPを受け取るまで解放されない。

なのでELBのようにIPが変化するものをnginxの後段に置くときは注意する。

https://hiroakis.com/blog/2015/10/13/nginx%E3%81%AEproxy_pass%E3%81%ABip%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%E3%83%9B/

https://blog.1q77.com/2016/03/nginx-resolving-proxy-upstream/

Before version 1.1.9, tuning of caching time was not possible, and nginx always cached answers for the duration of 5 minutes.

http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver