複数のアドレスをWeb発信するために、バーチャルホストを構築します。
バーチャルホストにはIP ベースとNAMEベースがありますが、
IP ベースでは、機器の数が増えてしまい、現実的に無理があるので、
ここでは、NAMEベースでのバーチャルホストを構築します。
* SSL セキュアサーバではアクセス時、最初に SSL の認証シーケンスが走り、
証明書の交換は先頭のバーチャルホストのデータを元に行われます。
従って、名前ベースのバーチャルホストでは、
SSL は一つのバーチャルホストしか扱えません。
* 名前ベースのバーチャルホストを導入すると、元々あったメインホストというものがなくなります。
その為、VirtualHost ディレクティブの先頭に定義されたバーチャルホストがメインホストになります。
従って、元々あったメインホストの設定やメインにしたいホストのデータは、
先頭のバーチャルホストとして再度定義する必要があります。
①Apache の設定
1. バーチャルホスト設定
GNOME端末より
# su + 管理者権限パスワード
# mkdir /var/www/html/virtual
# mkdir /var/www/html/virtual/++++++++.com
→ バーチャルホストのコンテンツを格納するためのディレクトリを作成
# chown -R abc:abc /var/www/html/virtual → 所有者と権限を abc に変更
# vi /etc/httpd/conf/httpd.conf → バーチャルホストの定義を設定ファイルに追加
--------------------------- 追加内容(VirtualHostのexampleの下へ) ---------------------------
NameVirtualHost *:80 → ポートを指定
<VirtualHost *:80> → メインホスト情報
ServerName ********.com
</VirtualHost>
<VirtualHost *:80> → 追加ホスト情報
ServerName ++++++++.com
DocumentRoot /var/www/html/virtual/++++++++.com
ErrorLog /var/log/httpd/error_log_++++++++.com
SetEnvIf Request_URI "default\.ida" no_log
SetEnvIf Request_URI "cmd\.exe" no_log
SetEnvIf Request_URI "root\.exe" no_log
SetEnvIf Request_URI "Admin\.dll" no_log
SetEnvIf Request_URI "NULL\.IDA" no_log
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(ico)|(css)$" no_log
SetEnvIf Remote_Addr 192.168. no_log
CustomLog /var/log/httpd/access_log_++++++++.com combined env=!no_log
ScriptAlias /cgi-bin/ "/var/www/html/virtual/++++++++.com/cgi-bin/" → バーチャルホストでも CGI 等が実行できる様に設定します
<Directory /var/www/html/virtual/++++++++.com/cgi-bin>
AllowOverride All
Options Includes ExecCGI FollowSymLinks
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
--------------------------------------------------------------------------------
②SSL の設定
GNOME端末より
# su + 管理者権限パスワード
# vi /etc/httpd/conf.d/ssl.conf → SSL 設定ファイルの編集
(省略)
# 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} !********.com$ → メインホスト名を指定
RewriteRule ^/(.*)?$ http://%{HTTP_HOST}/$1 [L,R]
</IfModule>
----------------------------------------------------------------------------
</VirtualHost>
③Apache の再起動
GNOME端末より
# su + 管理者権限パスワード
# /etc/rc.d/init.d/httpd restart → 設定を反映させます。
④確認
クライアントのpc のhosts ファイルを編集し動作を確認します。
127.0.0.1 localhost
192.168.0.1 abc.com ++++++++.com → ++++++++.comを追加します。
webブラウザを再起動してurlにアドレスを入れ動作を確認します。
* test用のhtml/shtml/cgi/php を作成し確認します。
cgiファイルはパーミッションの指定にも注意しましょう。
コメントする