ショウジンブログ

Learn as if you will live forever, Live as if you will die tomorrow.

サブドメインを利用する場合の注意@Nginx

Sponsored Links

設定ファイルを変更して書式が間違ってないかコマンドで確認した際にwarnメッセージが出て、その理由がなかなかわからず、昨日ようやっと解決したのでメモ。

やっぱりなんとなくやってたらだめだ。

自分がやっていることにどんな意味があってどんな機能を操作しようとしてるのか理解してやらないと。

Nginxでバーチャルホスト運用していて、あるドメインに複数のサブドメインを割り当てる場合の例です。(別にバーチャルホストで複数ドメインとかじゃなくて、単一ドメインの場合でも同様だと思うけど、その場合はnginx.confに書けばいいのかなと思います)

設定ファイルはサブドメインごとに用意するのではなくルートドメインの設定ファイルの中に

  • ルートドメイン:hoge.com
  • サブドメイン1:www.hoge.com
  • サブドメイン2:subdomain.hoge.com

これらの設定を「server」ブロックごとに分けて設定します。

昨日まで/etc/nginx/sites-availableの中にルートドメイン、サブドメイン、それぞれ別にしていたため以下のようなwarnメッセージが出ていました。

nginx: [warn] conflicting server name “subdomain.hoge.com” on 0.0.0.0:80, ignored

これはルートドメイン「hoge.com」にすでにポート80が割り当てられているのにサブドメイン「subdomain.hoge.com」にも同様にポート80が割り当てられていたことから「衝突してるよ」ということで出ていた模様。たぶん。

前述の例であれば(hoge.comの例)sites-availableの中にルートドメインのhoge.comの設定ファイルだけを用意して、その中にserverブロックで分けて、サブドメインの設定をします。

ハイパフォーマンスHTTPサーバ Nginx入門

ハイパフォーマンスHTTPサーバ Nginx入門