VirtualHostを使って、ひとつのWEBサーバで複数のサイトを運営する

ドメインをたくさん取った

example.comとsample.comなど複数のドメインを運用することを考えます。サブドメインがたくさんある場合も同様です。

ドメインはDNSでIPアドレスと紐付けられます。ドメインは複数あるけど、IPアドレスがひとつしかない場合、というかWEBサーバがひとつしかない場合はどうしたら良いでしょうか?

ドメインごとにWEBサーバが用意できれば良いのですが、個人で小さなサービスを複数運営しようと思うと、あまり効率的ではありません。

VirtualHostで複数のサイトを運営する

VirtualHostを使うと、ひとつのIPアドレス、ひとつのWEBサーバで複数のサイトを運営することができます。

全てのドメインへのアクセスをひとつのサーバに集めた上で、「どのドメインから来たの?」を調べて内部で応答を振り分けます。

作業ログ

example.comとtest.example.comへのアクセスをVirtualHostで振り分ける例です。

/var/www/example.comと/var/www/test.example.comというディレクトリを作成し、それぞれに環境を構築します。あとは、Apacheの設定にVirtualHostの項目を追加するだけで振り分けができます。

httpd.confを開くとVirtualHostの項目がコメントアウトされているので、これを有効にして、書き換えればすぐに使うことができます。

黒文字はターミナル上での作業、緑文字はアプリケーション内での作業、太字はアプリケーション内での入力ポイント、赤文字は各自書き換えるポイントです。

cd /var/www
mkdir example.com
mkdir test.example.com
vim /etc/httpd/conf/httpd.conf

NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot /var/www/example.com
    ServerName www.example.com
    ServerAlias example.com www.example.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www/test.example.com
    ServerName
test.example.com
</VirtualHost>

/etc/init.d/httpd restart

コメント

タイトルとURLをコピーしました