虛擬web主機
在同一臺物理服務器中運行多個web站點,其中每一個站點並不獨立佔用一臺真正的計算機
httpd支持的虛擬主機類型
* 基於域名的虛擬主機
* 基於IP地址的虛擬主機
* 基於端口的虛擬主機
案例一——基於域名
-
構建2個虛擬web站點
www.accp.com ip地址爲本機地址 www.kgc.com ip地址爲本機地址
-
在瀏覽器中訪問這兩個域名時,分別顯示不同的內容
實驗環境
一臺Linux主機做服務器
一臺win7主機做測試
1,安裝http和dns服務
[root@localhost ~]# yum install httpd bind -y //安裝http,dns服務
2,配置dns主配置文件
[root@localhost ~]# vim /etc/named.conf ##主配置文件
options {
listen-on port 53 { any; }; ##將本機監聽爲所有
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; ##允許所有
3,配置區域配置文件(etc/named.rfc1912.zones)
[root@localhost ~]# vim /etc/named.rfc1912.zones ##配置區域配置文件
zone "localhost" IN { ##複製兩個模板到下面
type master;
file "named.localhost";
allow-update { none; };
};
zone "accp.com" IN { ##修改localhost爲accp.com
type master;
file "accp.com.zone"; ##創建區域數據配置文件
allow-update { none; };
};
zone "kgc.com" IN { ##修改localhost爲kgc.com
type master;
file "kgc.com.zone"; ##創建區域數據配置文件
allow-update { none; };
};
4,編輯區域數據配置文件(accp.com.zone kgc.com.zone)
[root@localhost ~]# cd /var/named/ ##切換到/var/named目錄下
[root@localhost named]# cp -p named.localhost accp.com.zone
##複製模板爲accp.com.zone
[root@localhost named]# vim accp.com.zone ##編輯區域數據配置文件
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www IN A 192.168.13.133 ##刪除ipv6 添加域名解析地址爲本機
[root@localhost named]# cp -p accp.com.zone kgc.com.zone
##編輯kgc的區域數據配置文件,內容不需要更改
5,關閉防火牆並開啓服務
[root@localhost named]# systemctl start named ##開啓dns服務
[root@localhost named]# systemctl stop firewalld.service ##關閉防火牆
[root@localhost named]# setenforce 0 ##關閉增強功能
6,進入win7測試主機中,修改DNS解析服務器,查看是否可以解析
7,在Linux中創建一個http擴展配置文件
[root@localhost named]# cd /etc/httpd/conf ##切換到http配置目錄中
[root@localhost named]# mkdir extra ##創建擴展配置文件目錄
[root@localhost named]# cd extra
[root@localhost named]# vim vhost.conf ##編輯擴展配置文件
<VirtualHost *:80> ##標籤 *所有ip 80端口
Documentroot "/var/www/html/accp/" ##站點目錄
ServerName www.accp.com ##域名
Errorlog "logs/www.accp.com.error_log" ##錯誤日誌文件
Customlog "logs/www.accp.com.access_log" common ##訪問日誌
<Directory "/var/www/html/"> ##控制目錄權限
Require all granted ##允許所有人可以訪問
</Directory>
</VirtualHost>
##上面的logs是軟連接/var/log/httpd ##下面的只要修改accp爲kgc即可
<VirtualHost *:80>
Documentroot "/var/www/html/kgc/"
ServerName www.kgc.com
Errorlog "logs/www.kgc.com.error_log"
Customlog "logs/www.kgc.com.access_log" common
<Directory "/var/www/html/">
Require all granted
</Directory>
</VirtualHost>
8,到網頁站點中,創建accp和kgc的網頁主頁內容文件
[root@localhost extra]# cd /var/www/html/ ##切換到網頁站點中
[root@localhost html]# mkdir accp kgc ##創建兩個網站的站點目錄
[root@localhost html]# cd accp/
[root@localhost accp]# vim index.html ##編輯accp網頁內容
<h1>this is a accp web</h1>
[root@localhost html]# cd kgc/
[root@localhost accp]# vim index.html ##編輯kgc網頁內容
<h1>this is a kgc web</h1>
9,將http擴展配置文件加載到主配置文件中,並開啓http服務
[root@localhost www]# cd /etc/httpd/conf ##切換到http的配置文件目錄
[root@localhost conf]# vim httpd.conf ##編輯主配置文件
Include conf/extra/vhost.conf ##在末行加入擴展配置文件目錄
[root@localhost conf]# systemctl start httpd ##啓動http服務
10,使用域名進行頁面訪問
案例二——基於端口
1,配置擴展配置文件內容
[root@lolocalhost extra]# vim vhost.conf
<VirtualHost *:80>
Documentroot "/var/www/html/kgc/"
ServerName www.kgc.com
Errorlog "logs/www.kgc.com.error_log"
Customlog "logs/www.kgc.com.access_log" common
<Directory "/var/www/html/">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:8080> ##端口號改成8080
Documentroot "/var/www/html/kgc02/" ##目錄更改爲02
ServerName www.kgc.com
Errorlog "logs/www.kgc02.com.error_log" ##日誌文件更改爲02
Customlog "logs/www.kgc02.com.access_log" common
<Directory "/var/www/html/">
Require all granted
</Directory>
</VirtualHost>
2,編輯網站目錄和網站內容
[root@localhost extra]# cd /var/www/html/
[root@localhost html]# mkdir kgc02
[root@localhost html]# vim index.html ##編輯kgc02網頁的內容
<h1>this is a kgc02 web</h1>
3,配置http主配置文件,修改監聽端口,並重啓網絡服務
[root@localhost html]# vim /etc/httpd/conf/httpd.conf ##修改配置文件
Listen 192.168.13.133:80 ##修改ipv4監聽端口
Listen 192.168.13.133:8080
#Listen 80 ##將ipv6端口註釋
[root@localhost html]# systemctl restart httpd.service ##重啓網絡服務
[root@localhost html]# netstat -ntap ##查看監聽端口開啓狀態
tcp 0 0 192.168.13.133:8080 0.0.0.0:* LISTEN 4093/httpd
tcp 0 0 192.168.13.133:80 0.0.0.0:* LISTEN 4093/httpd
4,測試網頁
案例三——基於IP
在Linux上添加一塊網卡做不同IP
1,配置擴展配置文件內容
[root@lolocalhost extra]# vim vhost.conf
<VirtualHost 192.168.13.133:80> ##修改ip地址
Documentroot "/var/www/html/accp/" ##域名此處沒有用處刪除
Errorlog "logs/www.accp.com.error_log"
Customlog "logs/www.accp.com.access_log" common
<Directory "/var/www/html/">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.13.132:80> ##修改ip地址
Documentroot "/var/www/html/accp02/" ##修改目錄accp02和日誌
Errorlog "logs/www.accp02.com.error_log"
Customlog "logs/www.accp02.com.access_log" common
<Directory "/var/www/html/">
Require all granted
</Directory>
</VirtualHost>
2,編輯網站目錄和網站內容
[root@localhost extra]# cd /var/www/html/
[root@localhost html]# mkdir accp02 ##創建132ip地址的目錄站點內容
[root@localhost html]# cd accp02/
[root@localhost accp02]# echo "<h1>this is 132 web</h1>" > index.html
[root@localhost accp02]# cd ../
[root@localhost html]# cd accp ##修改133ip地址網頁內容
[root@localhost accp]# vim index.html
<h1>this is 133 web</h1>
3,配置http主配置文件,修改監聽端口,並重啓網絡服務
[root@localhost html]# vim /etc/httpd/conf/httpd.conf ##修改配置文件
Listen 192.168.13.133:80 ##添加兩個ip的端口監聽
Listen 192.168.13.132:80
#Listen 192.168.13.133:8080 ##註釋8080端口的
#Listen 80 ##將ipv6端口註釋
[root@localhost conf]# systemctl restart httpd.service ##重啓網絡服務
4,測試網頁
擴展:不同ip不同域名訪問
1,配置擴展配置文件內容
[root@lolocalhost extra]# vim vhost.conf
<VirtualHost 192.168.13.133:80>
Documentroot "/var/www/html/accp/"
ServerName www.accp.com ##添加域名
Errorlog "logs/www.accp.com.error_log"
Customlog "logs/www.accp.com.access_log" common
<Directory "/var/www/html/">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.13.132:80>
Documentroot "/var/www/html/accp02/"
ServerName www.naccp.com ##添加另一個域名
Errorlog "logs/www.accp02.com.error_log"
Customlog "logs/www.accp02.com.access_log" common
<Directory "/var/www/html/">
Require all granted
</Directory>
</VirtualHost>
2,在dns區域配置文件中添加新的域名解析
[root@localhost /]# vim /etc/named.rfc1912.zones
zone "accp.com" IN {
type master;
file "accp.com.zone";
allow-update { none; };
};
zone "naccp.com" IN {
type master;
file "naccp.com.zone";
allow-update { none; };
};
3,配置區域數據配置文件
[root@localhost named]# cd /var/named/
[root@localhost named]# cp -p accp.com.zone naccp.com.zone ##複製
[root@localhost named]# vim naccp.com.zone ##配置區域數據配置文件
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www IN A 192.168.13.132 ##此處的naccp要修改132ip地址
4,重啓dns和http服務,並測試
[root@localhost named]# systemctl restart named ##重啓DNS
[root@localhost named]# systemctl restart httpd.service ##重啓網絡