虛擬主機 是指在一臺WWW服務器上 為多個單獨的域名提供Web服務
Apache有3種方式支持 虛擬主機:
一、基于ip的虛擬主機: 一臺服務器上配置多個IP地址,每個Ip地址都有特定的目錄和配置。適合Ip地址充足的情況
1、[root@localhost root]# vi /etc/named.conf
zone "gr.org" IN { type master; file "gr.org.db"; allow-update { none; };};zone "170.168.192.in-addr.arpa" IN { type master; file "170.168.192.db";};
2、正向區域數據庫文件
[root@localhost root]# vi /var/named/gr.org.db
$TTL 86400@ IN SOA ns.gr.org. root.gr.org.( 20140308 ;serial 8H ;refresh 4M ;retry 1W ;expiry 1D ) ;minimum@ IN NS ns.gr.org.ns IN A 192.168.170.1host1 IN A 192.168.170.1host2 IN A 192.168.170.2host3 IN A 192.168.170.3反向區域數據庫文件
[root@localhost root]# vi /var/named/170.168.192.db
$TTL 86400@ IN SOA ns.gr.org. root.gr.org.( 20150826 8H 4M 1W 1D) IN NS ns.gr.org.1 IN PTR ns.gr.org.1 IN PTR host1.gr.org.2 IN PTR host2.gr.org.3 IN PTR host3.gr.org.3、設置DNS客戶端
[root@localhost root]# cat > /etc/resolv.confnameserver 192.168.170.4
service named start (啟動服務)如果已經啟動,就 rndc reload (重啟服務)
4、配置虛擬主機
[root@localhost conf.d]# vi /etc/httpd/conf.d/host_ip.conf
<VirtualHost 192.168.170.1:80> DocumentRoot /var/www/host1 ServerName host1.gr.org</VirtualHost><VirtualHost 192.168.170.2:80> DocumentRoot /var/www/host2 ServerName host2.gr.org</VirtualHost><VirtualHost 192.168.170.3:80> DocumentRoot /var/www/host3 ServerName host3.gr.org</VirtualHost>5、添加子接口的IP地址
[root@localhost conf.d]# ifconfig eth0:1 192.168.170.1
[root@localhost conf.d]# ifconfig eth0:2 192.168.170.2
[root@localhost conf.d]# ifconfig eth0:3 192.168.170.3
6、創建虛擬主機目錄和測試主頁
mkdir /var/www/host{1,2,3}
cd /var/www
echo “this host1” > host1/index.html
echo “this host2” > host2/index.html
echo “this host3” > host3/index.html
7、重啟服務
service httpd restart
結果如下:
二、基于端口的虛擬主機:
1、在/etc/httpd/conf.d目錄下 創建host_port.conf文件,添加以下內容
Listen 192.168.170.1:8000Listen 192.168.170.1:8888<VirtualHost 192.168.170.1:8000> DocumentRoot /var/www/host4 ServerName host1.gr.org </VirtualHost> <VirtualHost 192.168.170.2:8888> DocumentRoot /var/www/host5 ServerName host1.gr.org </VirtualHost>2、創建虛擬主機的工作目錄和測試主頁
mkdir /var/www/host{4,5} echo “this host1(8000)” > /var/www/host4/index.html echo “this host1(8888)” > /var/www/host5/index.html3、重啟服務
service httpd restart
測試
三、基于名稱的虛擬主機 (大多數用這種)
多個域名訪問,都對應同一個IP地址
1、在 正向區域數據庫文件 添加下面內容
music IN A 192.168.170.1movie IN A 192.168.170.12、在 反向區域數據庫文件 添加下面內容
1 IN PTR music.gr.org.1 IN PTR movie.gr.org.3、在/etc/httpd/conf.d目錄下 創建host_domain.conf文件,添加以下內容
<VirtualHost music.gr.org:80> DocumentRoot /var/www/musicServerName music.gr.org</VirtualHost> <VirtualHost movie.gr.org:80> DocumentRoot /var/www/movie ServerName movie.gr.org</VirtualHost>4、創建虛擬主機的工作目錄和測試主頁
cd /var/wwwmkdir music movieecho “this music” > music/index.htmlecho “this movie” > movie/index.html5、重啟服務
rndc reload 或者 service named restart
service httpd start
6、測試
新聞熱點
疑難解答