Apache虛擬主機的配置可分爲三種:基於端口、基於ip和基於域名的虛擬主機。下面我們分別做個簡單介紹。
我們以Windows平臺下的httpd-2.2.21-win32-x86-no_ssl.msi
版本爲例。
一、基於端口的虛擬主機設置
1、修改監聽端口
打開Apache配置文件httpd.conf,添加要使用的監聽端口
如:
Listen 80 Listen 81 Listen 82
以上設置的含義爲監聽80、81、82這幾個端口(注意不能和其它軟件的端口有衝突)。
2、更改虛擬主機設置:
打開Apache配置文件httpd.conf,查找 Include conf/extra/httpd-vhosts.conf,將前面的#號去掉。
修改虛擬主機配置文件 Apache/Conf/extra/httpd-vhosts.conf,清除或註釋掉原先所有內容,放置下面內容
<VirtualHost *:80> DocumentRoot "d:/WAMP/WWW" </VirtualHost> <VirtualHost *:81> DocumentRoot "d:/WAMP/test1" </VirtualHost> <VirtualHost *:82> DocumentRoot "d:/WAMP/test2" </VirtualHost>
3、測試:
打開瀏覽器分別輸入 http://localhost、http://localhost:81、http://localhost:82 可訪問不同網站
二、基於IP的虛擬主機設置
基於 IP 的虛擬主機是指爲每個 Web 站點配置不同的 IP 地址。通常用於有多塊物理網卡,或者配置了多個虛擬 IP 的 Web 服務器。
一個網卡綁定多個IP地址,打開“控制面板”->“網絡連接”->“本地連接”->“點右鍵屬性”->從“常規”選項卡中找到“Internet 協議(TCP/IP)“->"點擊屬性”->點下面的“高級”按鈕,在高級中的“IP設置-IP地址” 欄下點“添加”按鈕,輸入你想綁定的IP地址即可。如果之前本地連接IP地址是 192.168.1.2,那麼繼續添加 192.168.1.3、192.168.1.4、192.168.1.5 等等。用這些IP區分不同的虛擬主機。
我們這裏不一一綁定了,因爲所有127開頭的都會指向本機,如 127.0.0.1 ~ 127.0.0.255 等等。所以我們用這些地址做測試。這些地址只能本機訪問。
1、指定監聽端口
打開Apache配置文件httpd.conf,指定監聽端口
如:
Listen 80
以上設置的含義爲監聽80端口
2、更改虛擬主機設置:
打開Apache配置文件httpd.conf,查找 Include conf/extra/httpd-vhosts.conf,將前面的#號去掉。
修改虛擬主機配置文件 Apache/Conf/extra/httpd-vhosts.conf,清除或註釋掉原先所有內容,放置下面內容
<VirtualHost 127.0.0.1:80> DocumentRoot "d:/WAMP/WWW" ServerName 127.0.0.1:80 </VirtualHost> <VirtualHost 127.0.0.2:80> DocumentRoot "d:/WAMP/test1" ServerName 127.0.0.2:80 </VirtualHost> <VirtualHost 127.0.0.3:80> DocumentRoot "d:/WAMP/test2" ServerName 127.0.0.3:80 </VirtualHost>
3、測試:
打開瀏覽器分別輸入 http://127.0.0.1、http://127.0.0.2、http://127.0.0.3 可訪問不同網站
三、基於域名的虛擬主機設置
1、修改hosts文件
以Windows 2003爲例,在C:\WINDOWS\system32\drivers\etc 下有個hosts文件。
這個hosts的作用就是將一些常用的網址域名與其對應的IP地址建立關聯,當用戶在瀏覽器中輸入一個網址時,系統會首先自動從Hosts文件中尋找對應的IP地址,一旦找到,系統會立即打開對應網頁,如果沒有找到,則系統再會將網址提交DNS域名解析服務器進行IP地址的解析。
打開hosts文件,一般已有“127.0.0.1 localhost” ,添加你要增加的域名,如下:
127.0.0.1 www.test.com 127.0.0.1 www.test1.com 127.0.0.1 www.test2.com
2、指定監聽端口
打開Apache配置文件httpd.conf,指定監聽端口
如:
Listen 80
以上設置的含義爲監聽80端口
3、更改虛擬主機設置:
打開Apache配置文件httpd.conf,查找 Include conf/extra/httpd-vhosts.conf,將前面的#號去掉。
修改虛擬主機配置文件 Apache/Conf/extra/httpd-vhosts.conf,清除或註釋掉原先所有內容,放置下面內容
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "d:/WAMP/WWW" ServerName www.test.com </VirtualHost> <VirtualHost *:80> DocumentRoot "d:/WAMP/WWW/test1" ServerName www.test1.com </VirtualHost> <VirtualHost *:80> DocumentRoot "d:/WAMP/WWW/test2" ServerName www.test2.com </VirtualHost>
4、測試:
打開瀏覽器分別輸入 http://www.test.com、http://www.test1.com、http://www.test2.com 可訪問不同網站。
四 虛擬主機配置文件參數說明
<VirtualHost *:*> ServerAdmin # 管理員的E-mail地址 DocumentRoot # 虛擬主機的根目錄 ServerName # 虛擬主機的名稱端口 ErrorLog # 虛擬主機的錯誤日誌路徑 Customlog # 虛擬主機的訪問日誌路徑 </VirtualHost>