NginX- serverコンテキスト
ナビゲーションに移動
検索に移動
概要
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;