LoginSignup
11
9

More than 5 years have passed since last update.

nginxで複数のバーチャルホストが設定されている時のデフォルトサーバ

Last updated at Posted at 2014-07-22

nginx を使って複数のバーチャルホストを設定していて、
IPアドレスや、設定されていないホスト名でアクセスがあった時に表示するデフォルトサーバが、
おかしくなったので調査した事のメモ。

nginx.conf を流用して バーチャルホストの設定を conf.d に追加していくと、
include conf.d/*.conf で.confのつくファイルが全て読み込まれてしまうため、
順番がどうなっているのか分からなくなってしまいます。

バーチャルホストを設定するコンフィグファイルを include する順番を書いておけば、
こういった問題は起こらないと思います。

Apache だと apachectl -S とかで読み込まれたコンフィグの中で、
どのファイルが default server になっているかが確認出来るので便利なのですが、
nginx だとそういうコマンドがあるのか分かりません。

調べたところいくつか設定されたバーチャルホストの設定から、
明示的に default server を指定する方法があったのでメモしておく。

http の場合

listen       80 default_server;

https の場合

listen       443 ssl default_server;

バーチャルホスト設定内の listen ディレクティブに
default_server と書いておくと、
複数あるバーチャルホスト設定の中からその設定をdefault server として使用する。

11
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
9