一、基於IP
1. 假設伺服器有個IP地址為192.168.1.10,使用ifconfig在同一個網路介面eth0上綁定3個IP:
[root@localhost root]# ifconfig eth0:1 192.168.1.11
[root@localhost root]# ifconfig eth0:2 192.168.1.12
[root@localhost root]# ifconfig eth0:3 192.168.1.13
2. 修改hosts檔案,添加三個網域名稱與之一一對應:
192.168.1.11 www.test1.com
192.168.1.12 www.test2.com
192.168.1.13 www.test3.com
3. 建立虛擬機器主機存放網頁的根目錄,如在/www目錄下建立test1、test2、test3檔案夾,其中分別存放1.html、2.html、3.html
/www/test1/1.html
/www/test2/2.html
/www/test3/3.html
4. 在httpd.conf中將附加設定檔httpd-vhosts.conf包含進來,接著在httpd-vhosts.conf中寫入如下配置:
<VirtualHost 192.168.1.11:80> ServerName www.test1.com DocumentRoot /www/test1/ <Directory "/www/test1"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow From All </Directory></VirtualHost><VirtualHost 192.168.1.12:80> ServerName www.test1.com DocumentRoot /www/test2/ <Directory "/www/test2"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow From All </Directory></VirtualHost><VirtualHost 192.168.1.13:80> ServerName www.test1.com DocumentRoot /www/test3/ <Directory "/www/test3"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow From All </Directory></VirtualHost>
5. 大功告成,測試下每個虛擬機器主機,分別訪問www.test1.com、www.test2.com、www.test3.com
二、基於主機名稱
1. 設定網域名稱映射同一個IP,修改hosts:
192.168.1.10 www.test1.com
192.168.1.10 www.test2.com
192.168.1.10 www.test3.com
2. 跟上面一樣,建立虛擬機器主機存放網頁的根目錄
/www/test1/1.html
/www/test2/2.html
/www/test3/3.html
3. 在httpd.conf中將附加設定檔httpd-vhosts.conf包含進來,接著在httpd-vhosts.conf中寫入如下配置:
為了使用基於網域名稱的虛擬機器主機,必須指定伺服器IP地址(和可能的連接埠)來使主機接受請求。可以用NameVirtualHost指令來進行配置。 如果伺服器上所有的IP地址都會用到, 你可以用*作為NameVirtualHost的參數。在NameVirtualHost指令中指明IP地址並不會使伺服器自動偵聽那個IP地址。 這裡設定的IP地址必須對應伺服器上的一個網路介面。
下一步就是為你建立的每個虛擬機器主機設定<VirtualHost>配置塊,<VirtualHost>的參數與NameVirtualHost指令的參數是一樣的。每個<VirtualHost>定義塊中,至少都會有一個ServerName指令來指定伺服哪個主機和一個DocumentRoot指令來說明這個主機的內容存在於檔案系統的什麼地方。
如果在現有的web伺服器上增加虛擬機器主機,必須也為現存的主機建造一個<VirtualHost>定義塊。其中ServerName和DocumentRoot所包含的內容應該與全域的保持一致,且要放在設定檔的最前面,扮演預設主控件的角色。
NameVirtualHost *:80<VirtualHost *:80> ServerName * DocumentRoot /www/</VirtualHost><VirtualHost *:80> ServerName www.test1.com DocumentRoot /www/test1/ <Directory "/www/test1"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory></VirtualHost> <VirtualHost *:80> ServerName www.test2.com DocumentRoot /www/test2/ <Directory "/www/test2"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory></VirtualHost><VirtualHost *:80> ServerName www.test3.com DocumentRoot /www/test3/ <Directory "/www/test3"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory></VirtualHost>
4. 大功告成,測試下每個虛擬機器主機,分別訪問www.test1.com、www.test2.com、www.test3.com
三、基於連接埠
1. 修改設定檔
將原來的Listen 80改為Listen 80、Listen 8080
2. 更改虛擬機器主機設定:
<VirtualHost 192.168.1.10:80> DocumentRoot /var/www/test1/ ServerName www.test1.com</VirtualHost><VirtualHost 192.168.1.10:8080> DocumentRoot /var/www/test2 ServerName www.test2.com</VirtualHost>
以上就是Apache配置虛擬機器主機的方法,希望對大家學習有所協助。