httpリクエストのホストにvhostのどれにも当てはまらないservernameが来た際の動作
sampleのconf
# Ensure that Apache listens on port 80 Listen 80 # Listen for virtual host requests on all IP addresses NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /www/example1 ServerName www.example.com # Other directives here </VirtualHost> <VirtualHost *:80> DocumentRoot /www/example2 ServerName www.example.org # Other directives here </VirtualHost>
上記のような設定があるとしてhost名がwww.hoge.comのような感じでアクセスが来た際はconf内の記載順であるwww.example.comに入るらしい
↓公式から引用
アスタリスクはすべてのアドレスにマッチしますので、主サーバは リクエストを扱いません。www.example.com は 最初にあるため、優先順位は一番高くなり、default もしくは primary のサーバと考えることができます。つまり、リクエストが どの ServerName ディレクティブにもマッチしない場合、 一番最初の VirtualHost により扱われます。
バーチャルホストの例 - Apache HTTP サーバ バージョン 2.4
httpdでは1件目がデフォルトサーバとなるらしい。
ちなみにNginxの場合も1件目が優先されるのは同じであるがdefault_serverをつけることでhttpリクエストをそこへ振り分けることが可能となる。
server { listen 80 default_server; server_name _; return 444; }