第二卷 Apache WWW服務器的建立(3 / 3)

虛擬域名服務是指用一台服務器作為多個域名的 web server。一般Internet服務提供者經常通過一台機器(如

www.serve.com)為其它一些組織(如smallco及baygroup)提供WWW服務。過去一般的做法是在

www.serve.com服務器上建立一個WWW目錄樹,這樣smallco的 home page就可以通過:

http://www.serve.com/smallco/ 去訪問,baygroup的home page可以用http://www.serve.com/baygroup/

去訪問。但是每個組織都希望自己的home page以自己的名字出現,而不是在在Internet服務提供者的域名下麵;另一方麵這些組織又不想建立自己的Internet連接和服務器。

虛擬域名服務正是解決上述問題的一種方案。這時smallco和 baygroup公司就可以擁有自己的Internet域名:www.smallco.com和www.baygroup.org等等,這些域名都是指向ISP的一台服務器。如訪問這些組織的home

page,則通過 http://www.smallco.com/ 和 http://www.baygroup.org/ 既可。

Apache可以用兩種方式支持多主機,一種是為每一個主機名運行一個單一的httpddaemon;另一種是為所有的虛擬主機隻運行一個httpd

daemon。使用多個daemons的情況為:不同的虛擬主機都有不同的httpd配置,例如

ServerType, User, Group, TypesConfig及ServerRoot值都有所不同。使用單一daemon的情況為:多個虛擬主機可以共享httpd配置。

1.建立多個daemon

為每個虛擬主機安裝一個單獨的 httpd installation,在每次安裝時,在配置文件中使用BindAddress指定

daemon所服務的 IP address或虛擬主機,例如

BindAddress www.smallco.com

2. 建立單一daemon

這種情況下,由配置文件中的VirtualHost區來為不同的虛擬主機指定不同的ServerAdmin,

ServerName, DocumentRoot,ErrorLog以及 TransferLog值。例

如:

ServerAdmin [email protected]

DocumentRoot /groups/smallco/www

ServerName www.smallco.com

ErrorLog /groups/smallco/logs/error_log

TransferLog /groups/smallco/logs/access_log

ServerAdmin [email protected]

DocumentRoot /groups/baygroup/www

ServerName www.baygroup.org

ErrorLog /groups/baygroup/logs/error_log

TransferLog /groups/baygroup/logs/access_log

虛擬主機名也可以是IP地址。

除了ServerType, User, Group, StartServers,

MaxSpareServers,MinSpareServers,MaxRequestsPerChild, BindAddress, PidFile, TypesConfig,

和ServerRoot,其它的配置選項都可以放在VirtualHost區內指定。六 Proxy服務設置

Apache帶有一個proxy module,如果在編譯時加入可以將Apache作為caching-proxy

server。在係統編譯前,編輯Configuration文件,去掉關於Proxy行前的注釋: