Apache2.2虛擬主機設定
1.conf/httpd.conf檔案尾新增
#開啟vhost模組LoadModule vhost_alias_module modules/mod_vhost_alias.so
# 從"Host:"頭中取得主機名
UseCanonicalName Off
# 這種日誌格式可以從第一個欄位中提取出主機名
LogFormat "%V %h %l %u %t "%r" %s %b" vcommon
CustomLog E:/www/logs/access.log vcommon
# 在返回請求的檔名路徑中包含主機名
VirtualDocumentRoot E:/www/hosts/%0
#VirtualScriptAlias /www/hosts/%
<VirtualHost *:80>
#這個一定要設定,否則伺服器返回404(拒絕訪問)。
<Directory "E:/www/hosts">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
2.修改 C:/WINDOWS/system32/drivers/etc/hosts增加對映
127.0.0.1 localhost127.0.0.1
3.E:/www目錄設定(web服務檔案):
E:/www>dir /w /s /b
------------------------------------------------------------------------------------------------------------------------------------
E:/www/hosts
E:/www/logs
E:/www/hosts/localhost
E:/www/hosts/www.myext.com
E:/www/hosts/localhost/index.html
E:/www/hosts/www.myext.com/index.html
------------------------------------------------------------------------------------------------------------------------------------
5.測試效果
啟動apache,分別訪問localhost/www.myext.com,則可以看到頁面和訪問日誌:
www.myext.com 127.0.0.1 - - [16/Dec/2007:00:25:03 +0800] "GET / HTTP/1.1" 304 -
www.myext.com 127.0.0.1 - - [16/Dec/2007:00:25:38 +0800] "GET /index.html HTTP/1.1" 200 19
localhost 127.0.0.1 - - [16/Dec/2007:00:26:05 +0800] "GET / HTTP/1.1" 304 -
6.虛擬主機配置建議
虛擬主機少:用VirtualHost功能 改良:使用mod_vhost_alias
模組配置動態虛擬主機,這樣新增主機就不需要重啟Apache。
虛擬主機多:使用代理吞吐(Proxy Throughput)功能(flag [P]
),非單純的URL重寫,要加上埠轉換,這樣就可以使用多個Tomcat(防止相互影響)。
不建議使用Tomcat的<Context…/>級+Apache的URL重寫功能來“仿冒”Host,這樣會對具體web應用的路徑使用帶來限制。
Apache動態VirtualHost (埠1)àTomcat<Host>級配置(ajp埠1)
Apache動態VirtualHost (埠2)àTomcat<Host>級配置(ajp埠2)
Apache動態VirtualHost (埠X)àTomcat<Host>級配置(ajp埠X)
注:Apache2.2中不再使用jk,而使用下列模組
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule status_module modules/mod_status.so
LoadModule proxy_http_module modules/mod_proxy_http.so