株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

Apacheによる振り分けパターン

  • IPアドレスベース
  • ポート
  • FQDN(ServerName)

3通りの振り分け方がある。
今回は、FQDN(ServerName)で検証します

FQDNベースでVirtualHost

1つのIPアドレスに複数のFQDNを指定して、それぞれ異なるWebサーバを参照させるようにしたい。
Webブラウザが送信するhttpリクエストにHostヘッダが必要になるが、ほとんどのブラウザで対応している。

環境

  • Amazon Linux 2
  • httpd-2.4.39-1.amzn2.0.1.x86_64
  • セキュリティグループ

image.png

手順

Apacheインストール

yum -y update
yum -y install httpd
systemctl start httpd

それぞれのDocumentRootを作成

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

httpd.confの最終行に追記

ipアドレスが1つしかなければ、*でOK。
複数あれば対応するIPアドレスを書く。

/etc/httpd/conf/httpd.conf
# 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 ~]#

外部からも確認

DNSサーバに登録
image.png

web10OK!
image.png

web20OK!
image.png

web30OK!
image.png

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)