自宅サーバーを構築している方はドメインを2つ以上持っておれれる方が多いと思います。
1台のサーバーで異なるドメインを使用できるようにバーチャルホストを構築してみましよう。
他サイトの構築例を見ますと、/var/www/html/virtual.com/ のように本来のドキュメントディレクトリィの延長上に構築している例が多いようです。
これでは、本来のWEB上で /var/www/html/virtual.com/index.html とアクセスした場合でもバーチャルホストが見える事になりますし、セキュリティ上も好ましいとは思えません。
そこで、/var/www/virtual.com/ 上に構築して見る事にしました。
[root@meckk ~]# mkdir /var/www/virtual.com
バーチャルホスト用のディレクトリィを作成します。
virtualhost.conf を作成してバーチャルホストを認識させます。
(httpd.confの NameVirtualHost *:80 のコメントを外さなくても動作しました。)
[root@meckk ~]# vi /etc/httpd/conf.d/virtualhost.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName meckk.com
</VirtualHost>
<VirtualHost *:80>
ServerName virtual.com
DocumentRoot /var/www/virtual.com
ErrorLog logs/meckk.com-error_log
CustomLog logs/meckk.com-access_log combined env=!no_log
ScriptAlias /cgi-bin/ /var/www/virtual.com/
<Directory /var/www/virtual.com>
AllowOverride All
Options IncludesNoExec ExecCGI FollowSymLinks
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
アパッチの再起動を行います。
[root@meckk ~]# /etc/rc.d/init.d/httpd restart
|
|
これだけで、何の問題も無くバーチャルホストを構築する事が出来ます。
尚、Webサーバー間の通信内容暗号化を導入している場合は、https://meckk.com/ でアクセスしても、https://virtual.com/ でアクセスしても、https://meckk.com/ のWEBページが表示される不具合が発生します。
これを避けるため、他サイトの解説にあるように、リダイレクトの設定を最終行に追加します。
[root@meckk ~]# vi /etc/httpd/conf.d/ssl.conf
# This is the Apache server configuration file providing SSL support.
# It contains the configuration directives to instruct the server how to
# serve pages over an https connection. For detailing information about these
# directives see <URL:http://httpd.apache.org/docs/2.2/mod/mod_ssl.html>
#
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
#
途中省略
# Per-Server Logging:
# The home of a custom SSL log file. Use this when you want a
# compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
最終行に追加します。
ここから
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog "logs/rewrite_log"
RewriteLogLevel 0
RewriteCond %{HTTP_HOST} !meckk.com$
RewriteRule ^/(.*)?$ http://%{HTTP_HOST}/$1 [L,R]
</IfModule>
ここまで
</VirtualHost>
アパッチの再起動を行って設定を反映させます。
[root@meckk ~]# /etc/rc.d/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
|
|
バーチャルホストを増やしていく事は可能でしょうが、玄箱PROの場合はCPUの性能から考えて多くは無理でしょう。
他の機能の追加状態や平均アクセス数などから限界があると思います。