2025-03-02 nginxの仮想ホスティングの設定例
nginx はどのようにリクエストを処理するか
server {
listen 80;
server_name example.org www.example.org;
...
}
server {
listen 80;
server_name example.net www.example.net;
...
}
server {
listen 80;
server_name example.com www.example.com;
...
}
以下はChagGPTによる解説:
この設定は、Nginxを用いて名前ベースの仮想ホスティング(Virtual Hosting)を実現する例です。各serverブロックが以下のような役割を持っています。
listenディレクティブ
- listen 80;
- 各ブロックでポート80(HTTPの標準ポート)でリクエストを受け付けるように指定しています。
- IPアドレスを明示していないため、サーバー上のすべてのIPアドレスで待ち受けることになります。
server_nameディレクティブ
- 各serverブロックは、特定のドメイン名に対応しています。
- 例として、1つ目のブロックは example.org と www.example.org へのリクエストを処理します。
- 同様に、2つ目は example.net と www.example.net、3つ目は example.com と www.example.com に対応します。
- クライアントから送られるHTTPリクエストの「Host」ヘッダーと照合され、適切なserverブロックが選択されます。
名前ベースの仮想ホスティング
- これにより、1台のサーバーで複数の異なるウェブサイト(ドメイン)を運用できます。
- 各ドメイン毎に設定を分けることで、個々のウェブサイトに固有の設定(ドキュメントルート、アクセス制御、リダイレクト設定など)を記述することが可能です。
その他の設定
- 各serverブロック内の … の部分には、実際のウェブサイト運用に必要な追加設定(例:rootディレクティブでドキュメントルートを指定、locationブロックでURLパターンごとの処理を定義など)が記述されると考えられます。