$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

マスタリングNginxを読んだ

読んだ。大体付録を除けば150ページ程度なので、流し読みですぐ読めた。Nginxの基本知識とたまにある変な挙動を知ることができて面白かった。

よくある使い方のリバースプロキシについて学びたければ、1,2,4,5,8章あたりを流し読みしておくと十分だと思う。書いてある内容だけさらっと見ておけばあとから何かあった時にリファレンスとして使える。

個人的に参考になったのはp52あたりのリバースプロキシ環境での設定例。基本となる設定が何があるかさっと把握できた。そこで説明されているproxy_redirectとかはデフォルトで結構はまりそうな挙動してたので参考になった。

p60くらいのif周りも結構ハマりどころ多そうだった。条件によってifを使うとうまく実行されないディレクティブがあって難しい。出来る限りserver_nameやlocationで分岐できるところはそうすると良さそう。

あと名前解決周りの挙動もちょっと変。

location / {
    proxy_pass http://upstream.example.com;
}

だと毎回名前を引かないので、名前を毎回引いて欲しい場合は以下のようにする必要があるらしい。

location / {
    set $backend upstream.example.com;
    proxy_pass http://$backend;
}


【1/25追記】
Nginxでproxy_passにホスト名を書いた時の名前解決のタイミング - (ひ)メモで名前解決のタイミング検証されてるんで、興味がある人はこちらを読みましょう。

まだいまいちよく分かってないけどさらっと読めたので良かった。