LoginSignup
5
7

More than 5 years have passed since last update.

vhost_aliasを利用したVirtualHostの作成

Last updated at Posted at 2014-12-04

目的


高いサービスレベルを求められない数百のサイトを運用していく際、サーバ統合率を上げた構築を行い、短納期を実現するために運用管理も効率的な構成にしたい。

環境


  • Ubuntu 14.04.1 LTS
  • apache2.4.7-1ubuntu4.1

使用モジュール


/etc/apache2$ ls -l mods-available/ | grep vhost_alias

vhost_alias.load

モジュール有効化


/etc/apache2/mods-enabled$ sudo a2enmod vhost_alias
/etc/apache2/mods-enabled$ ll

vhost_alias.load -> ../mods-available/vhost_alias.load

設定ファイル作成


/etc/apache2/sites-available$ sudo nano vhost_alias.conf
documentrootに書いた%1がサブドメイン毎に作成したディレクトリを見る。

vhost_alias.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias *.example.com
    VirtualDocumentRoot /var/www/sites-enabled/%1/htdocs
    LogFormat "%{%FT%T%z}t %>s %T %B \"%m http://%{Host}i%U%q\" \"%{User-Agent}i\" %h" custom
    CustomLog /var/log/apache2/virtual_alias-access.log custom
    ErrorLog /var/log/apache2/virtual_alias-error.log
    <Directory "/var/www/sites-enabled/*/htdocs">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

作成した設定ファイルのシンボリックリンクを作成
/etc/apache2/sites-available$ sudo a2ensite vhost_alias.conf
/etc/apache2/sites-enabled$ ll ../sites-enabled/

000-default.conf -> ../sites-available/000-default.conf
vhost_alias.conf -> ../sites-available/vhost_alias.conf

apache再起動


$ sudo service apache2 restart

公開を限定的にする


ドキュメントルート配下にディレクトリを作ると同時に公開されてしまうので、
シンボリックリンクを利用して公開範囲を限定的にする。
/var/www$ sudo mkdir sites-available sites-enabled
/var/www/sites-enabled$ sudo ln -s ../sites-available/v-test1 v-test1
/var/www/sites-enabled$ sudo ln -s ../sites-available/v-test2 v-test2
/var/www/sites-enabled$ ll

v-test1.example.comとv-test2.example.comのサイトのみ公開。

v-test1 -> ../sites-available/v-test1/
v-test2 -> ../sites-available/v-test2/

利点


作成したディレクトリをコピーして利用すれば、サイトの作成・削除が容易で管理しやすい。
また、サイト追加時にapacheの再起動も必要としないので、バーチャルホスト全体への影響は無い。

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7