在一個Apache服務器上可以配置多個虛擬主機,實現一個服務器提供多站點服務,其實就是訪問同一個服務器上的不同目錄。Apache虛擬主機配置有3中方法:基於IP配置、基於域名配置和基於端口配置,這里介紹基於域名配置和基於端口配置,基於IP配置方法類似。
1. Apache基於域名配置虛擬主機: 打開Apache安裝目錄下的配置文件conf/extra/httpd-vhosts.conf,添加如下配置信息: <VirtualHost _default_:80> DocumentRoot "D:/wamp/www" ServerName www.jtw.com </VirtualHost> <VirtualHost *:80> ServerAdmin 2504091004@qq.com DocumentRoot "D:/wamp/www2" ServerName www.wujuntian.com ErrorLog "logs/wujuntian.log" CustomLog "logs/wujuntian.log" common <Directory "D:/wamp/www2"> Options Indexes FollowSymLinks MultiViews AllowOverride None Require all granted </Directory> </VirtualHost> 這里配置了兩個虛擬主機,其中第一個是默認虛擬主機,找不到虛擬主機的域名訪問也由這個虛擬主機來提供服務。這兩個主機使用的都是80端口,第一個虛擬主機指定域名為“www.jtw.com”,服務器目錄為“D:/wamp/www”,第二個虛擬你主機指定域名為“www.wujuntian.com”,服務器目錄為“D:/wamp/www2”。 然后在Apache主配置文件conf/httpd.conf中包含這個配置文件: Include conf/extra/httpd-vhosts.conf 最后重啟Apache服務器,就可以通過訪問兩個不同的域名訪問同一個服務器上的兩個目錄了。 注意:如果只是在本地進行配置測試的話,需要在hosts文件中加入域名到本地IP地址的映射(hosts文件位置:C:\Windows\System32\drivers\etc): 127.0.0.1 www.jtw.com 127.0.0.1 www.wujuntian.com
2. Apache基於端口配置虛擬主機: 首先在Apache配置文件conf/httpd.conf中修改配置讓Apache服務器監聽多個端口: Listen 8080 Listen 80 這里監聽兩個端口,配置兩個虛擬主機。 然后在配置文件conf/extra/httpd-vhosts.conf,添加如下配置信息: <VirtualHost _default_:80> DocumentRoot "D:/wamp/www" </VirtualHost> <VirtualHost *:8080> ServerAdmin 2504091004@qq.com DocumentRoot "D:/wamp/www2" <Directory "D:/wamp/www2"> Options Indexes FollowSymLinks MultiViews AllowOverride None Require all granted </Directory> </VirtualHost> 在Apache主配置文件conf/httpd.conf中包含這個配置文件: Include conf/extra/httpd-vhosts.conf 最后重啟Apache服務器,就可以通過同一個IP地址的不同端口來訪問同一個服務器上的兩個不同目錄了。 注意:Web服務器默認使用的是80端口,所以訪問80端口的站點時可以不用加上“:80”,但是訪問其他端口時必須帶上端口號。 在<VirtualHost></VirtualHost>段中的配置可以覆蓋外面的配置。