虛擬域名服務是指用一台服務器作為多個域名的 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行前的注釋: