一、基于IP
1. 假設(shè)服務(wù)器有個(gè)IP地址為192.168.1.10,使用ifconfig在同一個(gè)網(wǎng)絡(luò)接口eth0上綁定3個(gè)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文件,添加三個(gè)域名與之一一對(duì)應(yīng):
192.168.1.11 www.test1.com
192.168.1.12 www.test2.com
192.168.1.13 www.test3.com
3. 建立虛擬主機(jī)存放網(wǎng)頁的根目錄,如在/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包含進(jìn)來,接著在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. 大功告成,測(cè)試下每個(gè)虛擬主機(jī),分別訪問www.test1.com、www.test2.com、www.test3.com
二、基于主機(jī)名
1. 設(shè)置域名映射同一個(gè)IP,修改hosts:
192.168.1.10 www.test1.com
192.168.1.10 www.test2.com
192.168.1.10 www.test3.com
2. 跟上面一樣,建立虛擬主機(jī)存放網(wǎng)頁的根目錄
/www/test1/1.html
/www/test2/2.html
/www/test3/3.html
3. 在httpd.conf中將附加配置文件httpd-vhosts.conf包含進(jìn)來,接著在httpd-vhosts.conf中寫入如下配置:
為了使用基于域名的虛擬主機(jī),必須指定服務(wù)器IP地址(和可能的端口)來使主機(jī)接受請(qǐng)求。可以用NameVirtualHost指令來進(jìn)行配置。 如果服務(wù)器上所有的IP地址都會(huì)用到, 你可以用*作為NameVirtualHost的參數(shù)。在NameVirtualHost指令中指明IP地址并不會(huì)使服務(wù)器自動(dòng)偵聽那個(gè)IP地址。 這里設(shè)定的IP地址必須對(duì)應(yīng)服務(wù)器上的一個(gè)網(wǎng)絡(luò)接口。
下一步就是為你建立的每個(gè)虛擬主機(jī)設(shè)定<VirtualHost>配置塊,<VirtualHost>的參數(shù)與NameVirtualHost指令的參數(shù)是一樣的。每個(gè)<VirtualHost>定義塊中,至少都會(huì)有一個(gè)ServerName指令來指定伺服哪個(gè)主機(jī)和一個(gè)DocumentRoot指令來說明這個(gè)主機(jī)的內(nèi)容存在于文件系統(tǒng)的什么地方。
如果在現(xiàn)有的web服務(wù)器上增加虛擬主機(jī),必須也為現(xiàn)存的主機(jī)建造一個(gè)<VirtualHost>定義塊。其中ServerName和DocumentRoot所包含的內(nèi)容應(yīng)該與全局的保持一致,且要放在配置文件的最前面,扮演默認(rèn)主機(jī)的角色。
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. 大功告成,測(cè)試下每個(gè)虛擬主機(jī),分別訪問www.test1.com、www.test2.com、www.test3.com
三、基于端口
1. 修改配置文件
將原來的Listen 80改為Listen 80、Listen 8080
2. 更改虛擬主機(jī)設(shè)置:
<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配置虛擬主機(jī)的方法,希望對(duì)大家學(xué)習(xí)有所幫助。