【Apache】Apacheで名前ベースでVirtualHostを振り分ける

3通りの振り分け方がある。
今回は、FQDN(ServerName)
で検証します
1つのIPアドレスに複数のFQDNを指定して、それぞれ異なるWebサーバを参照させるようにしたい。
Webブラウザが送信するhttpリクエストにHostヘッダが必要になるが、ほとんどのブラウザで対応している。
yum -y update
yum -y install httpd
systemctl start httpd
mkdir /var/www/web10 /var/www/web20 /var/www/web30
echo 'web10.vamdemicsystem.black name-base web-site.' > /var/www/web10
/index.html
echo 'web20.vamdemicsystem.black name-base web-site.' > /var/www/web20
/index.html
echo 'web30.vamdemicsystem.black name-base web-site.' > /var/www/web30
/index.html
ipアドレスが1つしかなければ、*
でOK。
複数あれば対応するIPアドレスを書く。
# Add VirtualHost
NameVirtualHost *
<VirtualHost *:80>
ServerName web10.vamdemicsystem.black
DocumentRoot /var/www/web10
</VirtualHost>
<VirtualHost *:80>
ServerName web20.vamdemicsystem.black
DocumentRoot /var/www/web20
</VirtualHost>
<VirtualHost *:80>
ServerName web30.vamdemicsystem.black
DocumentRoot /var/www/web30
</VirtualHost>
systemctl restart httpd
hostsにそれぞれのFQDNを書く
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.
localdomain4
::1 localhost6 localhost6.localdomain6
127.0.0.1 web10.vamdemicsystem.black
127.0.0.1 web20.vamdemicsystem.black
127.0.0.1 web30.vamdemicsystem.black
curlで確認すると、うまいこと振り分けられているよう。OK!
localhostはWeb10の扱いになるのはどうして?
[root@ip-172-31-38-89 ~]# curl http://web10.vamdemicsystem.black
web10.vamdemicsystem.black name-base web-site.
[root@ip-172-31-38-89 ~]# curl http://web20.vamdemicsystem.black
web20.vamdemicsystem.black name-base web-site.
[root@ip-172-31-38-89 ~]# curl http://web30.vamdemicsystem.black
web30.vamdemicsystem.black name-base web-site.
[root@ip-172-31-38-89 ~]# curl http://web40.vamdemicsystem.black
curl: (6) Could not resolve host: web40.vamdemicsystem.black
[root@ip-172-31-38-89 ~]# curl http://localhost
web10.vamdemicsystem.black name-base web-site.
[root@ip-172-31-38-89 ~]#