http服務(wù)器物理主機(jī)性能強(qiáng)勁砚哆?可以配置多個虛擬主機(jī),充分利用物理資源膜蠢。
前提
物理主機(jī)IP為192.168.43.78藐不,安裝httpd-2.4
分別配置:
- 基于IP的兩臺httpd虛擬主機(jī),URL分別為http://192.168.43.78和http://192.168.43.79聊训;
- 基于PORT的兩臺虛擬主機(jī)抱究,URL分別為http://192.168.43.78和http://192.168.43.78:8080
- 基于FQDN的兩臺虛擬主機(jī),URL分別為http://www1.server.com和http://www2.server.com
httpd-2.4虛擬主機(jī)的配置項(xiàng)
<VitualHost IP:PORT>
ServerName FQDN
DocumentRoot ""
ErrorLog ""
CustomLog "" Combined
<Directory "">
Options {None|Index|FollowSymLink}
AllowOverride None
Require all granted #也可以指定IP带斑,或基于用戶的訪問控制
</Directory>
Alias
等等
</VirtualHost>
一鼓寺、基于IP的虛擬主機(jī)配置實(shí)踐
基于IP的虛擬主機(jī)雖然節(jié)約了物理資源,但需要額外配置IP地址勋磕,如果是公網(wǎng)生產(chǎn)環(huán)境妈候,也是一項(xiàng)額外成本。
配置要求:
(1) 站點(diǎn)1的IP為192.168.43.78挂滓,域名為www1.server.com苦银,文檔路徑為/data/www1/html;
(2) 站點(diǎn)2的IP為192.168.43.79赶站,域名為www2.server.com幔虏,文檔路徑為/data/www2/html。
配置步驟:
(1) 創(chuàng)建各自的文檔路徑和首頁文件
# mkdir -pv /data/www{1,2}/html
#編輯主頁以示區(qū)分贝椿。
# vim /data/www1/html/index.html
<h1>This is www1 Server</h1>
# vim /data/www2/html/index.html
<h1>This is www2 Server</h1>
(2) 為服務(wù)器主機(jī)設(shè)置2個IP地址
# 這里我是直接編輯網(wǎng)卡配置文件想括,設(shè)置IPADDR1和IPADDR2,沒有設(shè)置網(wǎng)卡別名
# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
...
IPADDR1="192.168.43.78"
PREFIX1="24"
IPADDR2="192.168.43.79"
PREFIX2="24"
...
# 重啟網(wǎng)絡(luò)服務(wù)以立即生效
# systemctl restart network.service
(3) 增加并編輯虛擬機(jī)配置文件
# 跳轉(zhuǎn)到配置文件目錄
# cd /etc/httpd/conf.d/
# 增加并編輯www1虛擬主機(jī)的配置文件
# vim vhost_www1.conf
<VirtualHost 192.168.43.78:80>
ServerName "www1.server.com"
DocumentRoot "/data/www1/html"
<Directory "/data/www1/html">
Options None
AllowOverride None
Require all granted
</Directory>
Customlog "logs/www1/access_log" combined
ErrorLog "logs/www1/error_log"
</VirtualHost>
# 增加并編輯www2虛擬主機(jī)的配置文件
# vim vhost_www2.conf
<VirtualHost 192.168.43.79:80>
ServerName "www2.server.com"
DocumentRoot "/data/www2/html"
<Directory "/data/www2/html">
Options None
AllowOverride None
Require all granted
</Directory>
Customlog "logs/www2/access_log" combined
ErrorLog "logs/www2/error_log"
</VirtualHost>
(4) 驗(yàn)證
# 檢查配置文件語法烙博,并重啟服務(wù)
# httpd -t
Syntax OK
# systemctl restart httpd.service
瀏覽器分別訪問http://192.168.43.78和http://192.168.43.79瑟蜈,分別顯示對應(yīng)內(nèi)容:
二、基于PORT的虛擬主機(jī)配置實(shí)踐
基于PORT的虛擬主機(jī)雖然節(jié)約了IP地址成本渣窜,但對于用戶來說铺根,輸入url時還需要指定端口,對于沒有IT基礎(chǔ)的用戶來說图毕,也是一項(xiàng)挑戰(zhàn)夷都,不利于拓寬用戶面眷唉。
配置要求:
(1) 站點(diǎn)1的IP:PORT為192.168.43.78:80予颤,域名為www1.server.com,文檔路徑為/data/www1/html冬阳;
(2) 站點(diǎn)2的IP:PORT為192.168.43.78:8080蛤虐,域名為www2.server.com,文檔路徑為/data/www2/html肝陪。
配置步驟:
(1) www1的配置不用更改驳庭,更改www2的配置
Listen 8080 #添加監(jiān)聽端口8080
<VirtualHost 192.168.43.78:8080>
ServerName "www2.server.com"
DocumentRoot "/data/www2/html"
<Directory "/data/www2/html">
Options None
AllowOverride None
Require all granted
</Directory>
Customlog "logs/www2/access_log" combined
ErrorLog "logs/www2/error_log"
</VirtualHost>
(2)驗(yàn)證
*瀏覽器訪問http://192.168.43.78:8080,顯示www2的主頁:
三、基于FQDN的虛擬主機(jī)配置實(shí)踐
如果有自己的DNS服務(wù)器饲常,基于FQDN的虛擬主機(jī)只需額外指定一個主機(jī)名蹲堂,在DNS服務(wù)器中添加條目,就可以訪問贝淤;或者額外申請一個域名柒竞。
這里使用在本機(jī)上搭建的bind作為DNS服務(wù)器,配置分為兩步播聪。
配置要求
(1) 站點(diǎn)1的IP:PORT為:80朽基,域名為www1.server.com,文檔路徑為/data/www1/html离陶;
(2) 站點(diǎn)2的IP:PORT為:80稼虎,域名為www2.server.com,文檔路徑為/data/www2/html招刨。
因?yàn)椴辉傩枰狪P和PORT來區(qū)分虛擬主機(jī)霎俩,所以IP為*,即本機(jī)的所有IP沉眶,端口為http默認(rèn)端口80
1. 配置DNS服務(wù)茸苇,并將http客戶端的DNS指向?qū)?yīng)地址
(1) 在bind配置文件/etc/named.rfc1912.zones中定義區(qū)域
# vim /etc/named.rfc1912.zones
zone "server.com" IN {
type master;
file "server.com.zone";
};
(2) 建立并編輯區(qū)域數(shù)據(jù)文件,用于解析server.com域中的域名
# vim /var/named/server.com.zone
$TTL 3600
$ORIGIN server.com.
@ IN SOA ns1.server.com. dnsadmin.server.com. (
2018101501
1H
10M
3D
1D )
IN NS ns1.server.com.
IN MX 10 mx1
ns1 IN A 192.168.43.78
mx1 IN A 192.168.43.78
www1 IN A 192.168.43.78
www2 IN A 192.168.43.78
(3) 重載配置文件和區(qū)域數(shù)據(jù)文件
# 檢查配置文件
# named-checkconf
# 檢查區(qū)域數(shù)據(jù)文件
# named-checkzone server.com /var/named/server.com.zone
zone server.com/IN: loaded serial 2018101501
OK
# 重載
# rndc reload
server reload successful
2.配置基于FQDN的虛擬主機(jī)
(1) 更改www1和www2的配置
# vim vhost_www1.conf
<VirtualHost *:80>
ServerName "www1.server.com"
DocumentRoot "/data/www1/html"
<Directory "/data/www1/html">
Options None
AllowOverride None
Require all granted
</Directory>
Customlog "logs/www1/access_log" combined
ErrorLog "logs/www1/error_log"
</VirtualHost>
# vim vhost_www2.conf
<VirtualHost *:80>
ServerName "www2.server.com"
DocumentRoot "/data/www2/html"
<Directory "/data/www2/html">
Options None
AllowOverride None
Require all granted
</Directory>
Customlog "logs/www2/access_log" combined
ErrorLog "logs/www2/error_log"
</VirtualHost>
(2) 檢查并重啟服務(wù)
# httpd -t
Syntax OK
# systemctl restart httpd.service
3. 驗(yàn)證
(1) 將客戶端的DNS服務(wù)器指向192.168.43.78
(2) 瀏覽器分別訪問http://www1.server.com和http://www2.server.com沦寂,顯示對應(yīng)內(nèi)容:
自此学密,httpd-2.4中三種虛擬主機(jī)的配置方式已實(shí)踐完成。