NginX- serverコンテキスト

提供:MochiuWiki : SUSE, EC, PCB
2024年11月30日 (土) 00:37時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == serverコンテキストは、仮想サーバを定義するための基本的な構成要素である。<br> このコンテキストは、常にhttpコンテキスト内に配置され、1つのNginXサーバーで複数の仮想ホストを運用することを可能にする。<br> <br> 主要な機能として、特定のIPアドレスやポートでのリクエスト待ち受け、ドメイン名の設定、SSLの設定、静的ファイルの配…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

概要

serverコンテキストは、仮想サーバを定義するための基本的な構成要素である。
このコンテキストは、常にhttpコンテキスト内に配置され、1つのNginXサーバーで複数の仮想ホストを運用することを可能にする。

主要な機能として、特定のIPアドレスやポートでのリクエスト待ち受け、ドメイン名の設定、SSLの設定、静的ファイルの配信設定、プロキシ設定等がある。

serverディレクティブの用途を以下に示す。

  • ポート番号の指定 (listen)
  • サーバ名の設定 (server_name)
  • ドキュメントルートの指定 (root)
  • SSL / TLS設定
  • ロケーション設定
  • リダイレクト設定


また、バーチャルホスティングにおいても、同一サーバ上で異なるドメインのWebサイトを運用することができる。

設定の継承関係について、serverコンテキスト内の設定は、より上位のhttpコンテキストからデフォルト値を継承する。
さらに、serverコンテキスト内のlocationコンテキストは、serverコンテキストの設定を継承する。
これにより、効率的で柔軟な設定管理が可能になる。

セキュリティにおいては、SSL / TLS証明書の設定、アクセス制限、リダイレクトルールの設定等が可能であり、安全なWebサービスの提供に貢献する。
また、エラーページのカスタマイズやログの設定も行うことができる。

パフォーマンスの最適化では、キャッシュ設定、バッファサイズの調整、接続数の制限等を設定することができるため、リソース管理が可能である。


locationコンテキスト

$realpath_root / $document_root

$realpath_rootと$document_rootの違いを以下に示す。

  • $realpath_root
    シンボリックリンクを解決して実際の物理パスを返す。
    より安全で確実な参照が可能となる。

  • $document_root
    設定ファイルで指定されたrootディレクティブの値をそのまま使用する。
    シンボリックリンクが解決されない


一般的な環境では両者は同じ結果になる。

しかし、セキュリティを重視する場合は$realpath_rootが推奨される。
特に、シンボリックリンクを使用している環境では、この違いが重要になる。

  • fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
  • fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;