魔法使いの卵

WEBエンジニアの卵の成長記録

nginx.confの構造について学んだ

nginx.confのブロック構造について

  • nginx.confはブロック構造になっている
  • ブロックは大きく分けて3つある
ブロック名 説明
http 設定ファイルのルートに設定する(nginx.confとかに)。http関連のモジュールがディレクティブやブロックなどを定義している。
server webサイトを宣言している。バーチャルホストの設定をNginxに認識させている。このブロックはhttpブロック内でしか使えない
location webサイトの特定の位置にだけ適用される設定を記述する。serverブロック内でしか使えない

構造をイメージ図で覚える

f:id:raichel:20151127005753g:plain

  • httpブロックがserverブロックを囲んでいる
  • serverブロックがlocationブロックを囲んでいる

まとめ

  • httpブロック
    • 全てのブロック親
    • nginx.confに書いてね
    • http関連のものはここに書いてね
    • ブロックの一番大きい枠になるよ
    • インクルードはこのブロック内に記述する
  • serverブロック
    • httpブロックの子ブロック
    • バーチャルホストの設定はここで書くよ
    • httpブロックの中でしか使えないから気をつけてね
  • locationブロック
    • serverブロックの子ブロック
    • バーチャルホスト等の中で指定したディレクトリにだけ修飾子を与えることができる(パターンマッチなど)
    • serverブロック内か他のlocationブロック内で記述する

httpブロック内で記述した設定は継承されるので注意する点

  • httpブロック内で記述した設定は内部のserverとlocationにも反映される
  • 一部にだけ反映させたい場合はlocationブロック内で指定して記述する

おもったこと

  • locationブロックの役割がふんわりわかった
  • 実例がないとあんまり他のブロックに比べて重要性がわからない