我們在配置一臺服務(wù)器的時候,如果只運行一個站點,往往過于浪費資源。Nginx和Apache都可以通過配置虛擬主機(jī)實現(xiàn)多站點。配置虛擬主機(jī)的方式主要有兩種,一種是多個不同端口對應(yīng)的多個虛擬主機(jī)站點,一種是同一端口對應(yīng)多個不同域名的虛擬主機(jī)站點。這里我用80端口為例,在Apache配置多個不同域名虛擬主機(jī)。
試驗環(huán)境:Windows+Apache (Linux+Apache同理)
1、 虛擬機(jī)需要用到Rewrite,所以先編輯Apache的conf目錄下的httpd.conf文件
掉Rewrite模塊列行中前面的#號(刪除注釋)。添加mod_rewrite.so模塊支持。
LoadModule rewrite_module modules/mod_rewrite.so
同時,還要讓主配置文件包含虛擬機(jī)配置文件:
找到 #Include conf/extra/httpd-vhosts.conf 這一行去掉前面的 # 。
2、 然后編輯 /conf/extra/httpd-vhosts.conf 文件:
(1)如果里面有默認(rèn)的設(shè)置,刪除里面默認(rèn)設(shè)置的虛擬主機(jī),我這里是以下這段代碼:
<VirtualHost default:80>
DocumentRoot "/Apache24/htdocs"
ServerName example.com:80
</VirtualHost>
(2)修改NameVirtualHost參數(shù),要在本機(jī)的所有IP的80端口上面做多域名:NameVirtualHost *:80
(3)添加虛擬主機(jī)一:
<VirtualHost *:80>
#管理員郵箱
ServerAdmin *@163.com
#虛擬主機(jī)根目錄
DocumentRoot "E:/www/linux/"
#虛擬主機(jī)名
ServerName linuxidc.net
#虛擬主機(jī)別名
ServerAlias linuxidc.net
#日志路徑
ErrorLog "logs/linux-error.log"
CustomLog "logs/linux-access.log" common
RewriteEngine on
</VirtualHost>
(4)添加虛擬主機(jī)二:
<VirtualHost *:80>
#管理員郵箱
ServerAdmin *@163.com
#虛擬主機(jī)根目錄
DocumentRoot "E:/www/linuxidc/"
#虛擬主機(jī)名
ServerName linuxidc.com
#虛擬主機(jī)別名
ServerAlias linuxidc.com
#日志路徑
ErrorLog "logs/linuxidc-error.log"
CustomLog "logs/linuxidc-access.log" common
RewriteEngine on
</VirtualHost>
(5)保存退出
3、修改本地hosts文件:
在windows中,進(jìn)入C:/Windows/System32/drivers/etc (在linux環(huán)境中應(yīng)該是在/etc/hosts)
打開host文件,在最后面添加下面兩行:
127.0.0.1 linuxidc.net
127.0.0.1 linuxidc.com
保存退出
4、重啟服務(wù)器。
在你兩個虛擬機(jī)的根目錄下新建一些測試文件,比如在”E/www/linux/”目錄新建個test.html,在目錄"E:/www/linuxidc/"頁新建個test.html,寫上對應(yīng)的測試代碼,在瀏覽器里輸入linuxidc.net/test.html和linuxidc.com/test.html查看結(jié)果。