Apache2 バーチャルホストの設定

/ Linux/Unix / Comment[0]

バーチャルホストを利用すると物理的に一台のサーバで複数のサイトを公開することが可能になります。
バーチャルホストにはIPベース名前ベースの2つの方式があります。

名前ベースのバーチャルホスト

NameVirtualHostディレクティブでリクエストを受け付けるIPアドレスを指定し、VirtualHostディレクティブでバーチャルホストごとの設定を記述します。

httpd.conf

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName www.hoge.com
  ServerAdmin webmaster@hoge.com
  DocumentRoot /var/www/hoge.com
</VirtualHost>

<VirtualHost *:80>
  ServerName mccafe.com
  ServerAdmin webmaster@mccafe.com
  DocumentRoot /var/www/mccafe.com
</VirtualHost>

デーモンを再起動してDNSを設定すれば完了です。

このホスト対して「GET www.hoge.com HTTP/1.0」と送ると/var/www/hoge.comを
「GET mccafe.com HTTP/1.0」と送ると/var/www/mccafe.comを参照するようになります。

以下はncコマンドでテストする例です。

$ nc 10.0.1.2 80
GET http://mccafe.com HTTP/1.0

HTTP/1.1 200 OK
Date: Thu, 09 Apr 2015 00:24:19 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 09 Apr 2015 00:22:56 GMT
ETag: "b-5133fa63b2583"
Accept-Ranges: bytes
Content-Length: 11
Connection: close
Content-Type: text/html; charset=UTF-8

mccafe.com
$ nc 10.0.1.2 80
GET http://www.hoge.com HTTP/1.0

HTTP/1.1 200 OK
Date: Thu, 09 Apr 2015 00:25:47 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 09 Apr 2015 00:23:06 GMT
ETag: "9-5133fa6cf8db2"
Accept-Ranges: bytes
Content-Length: 9
Connection: close
Content-Type: text/html; charset=UTF-8

hoge.com

IPベースのバーチャルホスト

IPベースの場合はLISTENで待ち受けるIPアドレスを指定し、VirtualHostディレクティブでIPごとの設定を記述します。

LISTEN 10.0.1.2
LISTEN 10.0.1.3

<VirtualHost 10.0.1.2:80>
  ServerName www.hoge.com
  ServerAdmin webmaster@hoge.com
  DocumentRoot /var/www/hoge.com
</VirtualHost>

<VirtualHost 10.0.1.3:80>
  ServerName mccafe.com
  ServerAdmin webmaster@mccafe.com
  DocumentRoot /var/www/mccafe.com
</VirtualHost>

デーモンを再起動し、インターフェイスに複数のアドレスを振れば完了です。

# ip addr add 10.0.1.2/16 dev enp0s3
# ip addr add 10.0.1.3/16 dev enp0s3

10.0.0.1にアクセスすれば/var/www/hoge.com
10.0.0.2にアクセスすれば/var/www/mccafe.comを参照します。

関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可