虛擬Web主機指的是在同一臺服務器中運行多個Web站點,其中的每一個站點實際上並不
獨自佔用整個服務器,因此被稱爲“虛擬Web主機”。 通過虛擬Web主機服務可以充分利用
服務器的硬件資源,從而大大降低網站構建及運行成本
使用httpd可以非常方便地構建虛擬主機服務器,只需要運行一個httpd服務就能夠同時支撐
大量的Web站點。Httpd支持的虛擬主機類型包括以下三種:
基於域名的虛擬主機 : 不同的域名 相同的IP
基於端口的虛擬主機 : 不使用域名、IP來區分不同站點的內容,而是用不同的TCP端口號
.基於IP地址的虛擬主機 : 不同的域名 不同的IP ( 需要加網絡接口 ,應用的不廣泛)
由於基於IP地址的虛擬主機需要添加網絡接口 使用不廣泛,所以下面只對基於域名的虛擬主機
和基於端口的虛擬主機 進行介紹。
.
1:基於域名的虛擬主機
# vim /etc/httpd/conf/httpd.conf //配置httpd.conf
ServerName linux.zkc.com:80
Listen 192.168.100.101:80 //監聽的IP端口
#Listen 80 //註釋這行
創建獨立的配置文件夾
# vim /etc/httpd/conf.d/vhost.conf //創建vhost.conf
NameVirtualHost 192.168.100.101:80
<VirtualHost 192.168.100.101:80>
ServerAdmin [email protected] //建立一個管理員郵箱
DocumentRoot /opt/benet/ //站點目錄
ServerName www.benet.com //域名www.benet.com
ErrorLog logs/benet.com-error_log //錯誤日誌
CustomLog logs/benet.com-access_log common //訪問日誌
</VirtualHost>
<VirtualHost 192.168.100.101:80>
ServerAdmin [email protected]
DocumentRoot /opt/accp/
ServerName www.accp.com
ErrorLog logs/accp.com-error_log
CustomLog logs/accp.com-access_log common
</VirtualHost>
.
爲虛擬機準備網頁文檔
mkdir /opt/benet
mkdir /opt/accp
echo "this is benet" > /opt/benet/index.html
echo "this is accp" > /opt/accp/index.html
.
域名解析需要安裝配置DNS
rpm -ivh /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm
vim /etc/named.conf //DNS修改主配置文件
listen-on port 53 { 192.168.100.101; };
allow-query { any; };
# vim /etc/named.rfc1912.zones //修改DNS區域文件
zone "benet.com" IN {
type master;
file "benet.com.zone";
allow-update { none; };
};
zone "accp.com" IN {
type master;
file "accp.com.zone";
allow-update { none; };
};
修改DNS區域數據文件
# cd /var/named/
# cp -p named.localhost benet.com.zone
# vim benet.com.zone
@ IN SOA @ admin. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www IN A 192.168.100.101
# cp -p benet.com.zone accp.com.zone
# service named restart
# service httpd restart
打開IE瀏覽器 輸入 www.benet.com www.accp.com
2:基於端口的虛擬主機 (這裏測試的是8080端口)
# vim /etc/httpd/conf.d/vhost.conf
.....
..... //添加下面幾行
NameVirtualHost 192.168.100.101:8080
<VirtualHost 192.168.100.101:8080>
ServerAdmin [email protected]
DocumentRoot /opt/benet01/
ServerName www.benet.com
ErrorLog logs/benet.com-error_log
CustomLog logs/benet.com-access_log common
</VirtualHost>
爲www.benet.com:8080 準備一個測試網頁
# mkdir /opt/benet01
# echo "this is benet8080" > /opt/benet01/index.html
# vi /etc/httpd/conf/httpd.conf
Listen 192.168.100.101:8080
在IE瀏覽器裏 輸入www.benet.com:8080