站長資訊網
最全最豐富的資訊網站

CentOS 7中httpd服務構建虛擬Web主機與虛擬目錄設置詳解

虛擬Web主機指的是在同一臺服務器中運行多個Web站點,其中的每個站點實際并不獨立占用整個服務器,因此被稱為“虛擬”Web主機。通過虛擬Web主機服務可以充分利用服務器的硬件資源,從而大大降低網站構建及運行成本。

使用httpd服務可以非常方便地構建虛擬主機服務器,只需要運行一個httpd服務就能同事支撐大量的Web站點。

httpd服務支持的虛擬主機類型包括以下三種:

基于域名:為每個虛擬主機使用不同的域名,但是其對應的IP地址是相同的;

基于IP地址:為每個虛擬主機使用不同的域名,其各自對應的IP地址也不相同;

基于端口:這種方式并不使用域名、IP地址來區分不同的站點內容,而是使用不同的TCP端口,因此用戶在瀏覽不同的虛擬站點時需要同時指定端口號才能訪問。

這幾種虛擬Web主機中,基于域名的虛擬主機是使用最為廣泛的;基于IP地址和基于端口的虛擬主機一般只適用于公司內部。

基于域名主機的虛擬主機實現步驟:

1.為虛擬主機提供域名解析

首先需要搭建DNS服務以便提供域名解析,搭建DNS服務詳細步驟可以參考博文CentOS 7搭建DNS服務,這里只介紹關鍵配置信息:

 [root@localhost /]# vim /etc/named.conf  //修改DNS服務主配置文件                                 …………    //省略部分內容  zone "a.com" IN {          type master;          file "a.com.zone";  };  zone "b.com" IN {          type master;          file "b.com.zone";  };  [root@localhost /]# vim /var/named/a.com.zone  //編寫a.com區域配置文件    $TTL 1D  @       IN SOA  @ rname.invalid. (                                          0       ; serial                                          1D      ; refresh                                          1H      ; retry                                          1W      ; expire                                          3H )    ; minimum  @       IN      NS      www.a.com.  www     IN      A       192.168.1.1  [root@localhost /]# vim /var/named/b.com.zone  //編寫b.com區域配置文件    $TTL 1D  @       IN SOA  @ rname.invalid. (                                          0       ; serial                                          1D      ; refresh                                          1H      ; retry                                          1W      ; expire                                          3H )    ; minimum  @       IN      NS      www.b.com.  www     IN      A       192.168.1.1  [root@localhost /]# systemctl start named  //啟動DNS服務  [root@localhost /]# nslookup  > www.a.com  Server:     127.0.0.1  Address:    127.0.0.1#53    Name:   www.a.com  Address: 192.168.1.1  > www.b.com  Server:     127.0.0.1  Address:    127.0.0.1#53    Name:   www.b.com  Address: 192.168.1.1  //測試解析

2.為虛擬主機準備網頁文檔

[root@localhost /]# mkdir -p /var/www/html/acom  [root@localhost /]# mkdir -p /var/www/html/bcom  [root@localhost /]# echo "<h1>www.a.com</h1>" > /var/www/html/acom/index.html  [root@localhost /]# echo "<h1>www.b.com</h1>" > /var/www/html/bcom/index.html  //文件存放位置可以自定義

3.添加虛擬主機配置
當虛擬Web主機的數量較多時,建議使用獨立的虛擬主機配置文件,然后在httpd服務的主配置文件通過Include加載這些配置。這樣可以將對httpd服務的主配置文件的修改減至最少,更方便配置內容的維護。

root@localhost /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf   //創建獨立的配置文件  <VirtualHost *:80>                                          //*表示所有地址      ServerAdmin webmaster@a.com              //管理員郵箱地址             DocumentRoot "/var/www/html/acom"       //設置a虛擬站點區域       ServerName www.a.com                           //域名      ServerAlias www.dummy-host.example.com       //別名      ErrorLog "logs/www.a.com.error_log"                  //錯誤日志      CustomLog "logs/www.a.com.access_log" common    //訪問日志      <Directory "/var/www/html">        Require  all granted              //允許所有主機訪問      </Directory>  </VirtualHost>    <VirtualHost *:80>      ServerAdmin webmaster@b.com      DocumentRoot "/var/www/html/bcom"      ServerName www.b.com      ServerAlias www.dummy1-host.example.com      ErrorLog "logs/www.b.com.error_log"      CustomLog "logs/www.b.com.access_log" common      <Directory "/var/www/html">        Require  all granted      </Directory>  </VirtualHost>  [root@localhost /]# vim /usr/local/httpd/conf/httpd.conf   //編寫httpd服務的主配置文件                    …………              //省略部分內容  Include conf/extra/httpd-vhosts.conf  //加載獨立的配置文件  [root@localhost /]# systemctl start httpd  //啟動httpd服務

4.客戶機訪問測試
CentOS 7中httpd服務構建虛擬Web主機與虛擬目錄設置詳解
CentOS 7中httpd服務構建虛擬Web主機與虛擬目錄設置詳解

基于IP地址的虛擬主機實現步驟
實驗環境中,所以在服務器上模擬一個IP地址

[root@localhost /]# cd /etc/sysconfig/network-scripts/  [root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0  //復制網卡配置文件  [root@localhost network-scripts]# vim ifcfg-ens33:0  //修改剛才復制的網卡配置文件  TYPE=Ethernet  BOOTPROTO=static  DEFROUTE=yes  PEERDNS=yes  PEERROUTES=yes  IPV4_FAILURE_FATAL=no  IPV6INIT=yes  IPV6_AUTOCONF=yes  IPV6_DEFROUTE=yes  IPV6_PEERDNS=yes  IPV6_PEERROUTES=yes  IPV6_FAILURE_FATAL=no  IPV6_ADDR_GEN_MODE=stable-privacy  NAME=ens33:0                          //必須修改  UUID=fddc7556-c28d-4149-afb8-13356cdeb279  DEVICE=ens33:0                       //必須修改  ONBOOT=yes  IPADDR=192.168.1.11               //必須修改  [root@localhost network-scripts]# ifdown ens33:0;ifup ens33:0  //重新加載ens33:0網卡的配置文件  [root@localhost network-scripts]# ifconfig ens33:0  ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500          inet 192.168.1.11  netmask 255.255.255.0  broadcast 192.168.1.255          ether 00:0c:29:98:42:5d  txqueuelen 1000  (Ethernet)  [root@localhost /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf   //修改虛擬主機配置文件  <VirtualHost 192.168.1.1:80>                              //把*改為IP地址      ServerAdmin webmaster@a.com      DocumentRoot "/var/www/html/acom"      ServerName www.a.com      ServerAlias www.dummy-host.example.com      ErrorLog "logs/www.a.com.error_log"      CustomLog "logs/www.a.com.access_log" common      <Directory "/var/www/html">        Require  all granted      </Directory>  </VirtualHost>    <VirtualHost 192.168.1.11:80>                    //把*改為IP地址      ServerAdmin webmaster@b.com      DocumentRoot "/var/www/html/bcom"      ServerName www.b.com      ServerAlias www.dummy1-host.example.com      ErrorLog "logs/www.b.com.error_log"      CustomLog "logs/www.b.com.access_log" common      <Directory "/var/www/html">        Require  all granted      </Directory>  </VirtualHost>  [root@localhost /]# systemctl restart httpd  //重新加載httpd服務

客戶機訪問測試
CentOS 7中httpd服務構建虛擬Web主機與虛擬目錄設置詳解
CentOS 7中httpd服務構建虛擬Web主機與虛擬目錄設置詳解

基于端口的虛擬主機實現步驟
修改虛擬主機配置文件

root@localhost /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf   <VirtualHost *:80>      ServerAdmin webmaster@a.com      DocumentRoot "/var/www/html/acom"      ServerName www.a.com      ServerAlias www.dummy-host.example.com      ErrorLog "logs/www.a.com.error_log"      CustomLog "logs/www.a.com.access_log" common      <Directory "/var/www/html">        Require  all granted      </Directory>  </VirtualHost>    <VirtualHost *:8080>                              //修改端口信息      ServerAdmin webmaster@b.com      DocumentRoot "/var/www/html/bcom"      ServerName www.b.com      ServerAlias www.dummy1-host.example.com      ErrorLog "logs/www.b.com.error_log"      CustomLog "logs/www.b.com.access_log" common      <Directory "/var/www/html">        Require  all granted      </Directory>  </VirtualHost>  Listen 8080             //監聽8080端口,寫在主配置文件或虛擬主機配置文件都可以    [root@localhost /]# systemctl restart httpd  //重新加載httpd服務

強烈建議,修改端口信息的時候,千萬不能修改為1~1024之間的端口,因為這些端口已經被系統服務使用!

客戶機訪問測試
CentOS 7中httpd服務構建虛擬Web主機與虛擬目錄設置詳解
CentOS 7中httpd服務構建虛擬Web主機與虛擬目錄設置詳解

虛擬目錄實現步驟

[root@localhost httpd-2.4.25]# mkdir /yum  [root@localhost httpd-2.4.25]# echo "<h1>www.yum.com</h1>" > /yum/index.html  //創建虛擬目錄測試文件  [root@localhost httpd-2.4.25]# vim /usr/local/httpd/conf/httpd.conf   //編寫httpd服務主配置文件                          …………     //省略部分內容  Alias /test "/yum"        //定義虛擬目錄“/test”,物理路徑為“/yum”  <Directory "/yum">        //定義目錄訪問權限  Options Indexes MultiViews FollowSymLinks      //固定格式,這項可以忽略  AllowOverride None             //固定格式。這項可以忽略  Order allow,deny    //匹配順序為先允許,后拒絕,這項可以忽略  Allow from all        //設置允許所有人訪問,這項可以忽略  Require all granted    //對這個目錄給予授權  </Directory>  [root@localhost httpd-2.4.25]# systemctl restart httpd  //重新啟動httpd服務

客戶機測試訪問
CentOS 7中httpd服務構建虛擬Web主機與虛擬目錄設置詳解

如果想針對虛擬目錄開啟身份驗證
將上面的配置做如下修改:

[root@localhost httpd]# vim /usr/local/httpd/conf/httpd.conf   //修改httpd服務主配置文件                             …………               //省略部分內容  Alias /test "/yum"  <Directory "/yum">  Options Indexes MultiViews FollowSymLinks                //固定格式可以省略  AllowOverride None                                                      //固定格式可以省略                                                   AuthName "test"                               //定義受保護的領域名稱,該內容將在瀏覽器彈出的認證對話框中顯示  AuthType Basic                                //設置認證的類型,Basic為基本的認證  AuthUserFile /usr/local/httpd/user    //設置用于保存用戶賬號、密碼的認證文件路徑  Require valid-user                            //要求只有認證文件中的合法用戶才能訪問。valid-user表示所有合法用戶  </Directory>  [root@localhost htdocs]# cd /usr/local/httpd/  [root@localhost httpd]# bin/htpasswd -c /usr/local/httpd/conf/123.txt xiaozhang  New password:   Re-type new password:   Adding password for user xiaozhang  [root@localhost httpd]# systemctl restart httpd  //重新啟動httpd服務

針對Web網站設置用戶限制,可以參考博文:CentOS 7 中httpd服務的用戶限制詳解
客戶機訪問測試
CentOS 7中httpd服務構建虛擬Web主機與虛擬目錄設置詳解

如果虛擬目錄針對虛擬主機,請在虛擬主機配置文件中添加。

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
一本色道久久88综合亚洲精品高清| 久久精品一区二区三区中文字幕 | 亚洲午夜国产精品无码老牛影视| 精品一区二区三区无码视频| 国产在线无码精品无码| WWW国产亚洲精品久久麻豆| 97久久国产亚洲精品超碰热 | 人人妻人人澡人人爽人人精品浪潮| 精品亚洲成a人片在线观看少妇| 国产国拍亚洲精品mv在线观看| 国产亚洲精品国看不卡| 精品人妻伦九区久久AAA片69| 亚洲精品天堂成人片?V在线播放| 精品特级一级毛片免费观看| 日韩精品视频观看| 日韩美女在线观看一区| 日韩乱码人妻无码系列中文字幕| 国产乱人伦偷精品视频下| 国产精品自拍电影| 日本久久中文字幕精品| 青青青国产精品国产精品美女| 亚洲AV永久无码精品放毛片| 五月天精品视频在线观看| 国产乱人伦精品一区二区| 99精品人妻无码专区在线视频区| 精品一区精品二区制服| 精品国产一区二区三区色欲| 久久九九兔免费精品6| 精品国产99久久久久久麻豆| 久久精品国产99国产精品亚洲| 久久精品国产免费观看三人同眠| 精品成人乱色一区二区| 99国产精品国产精品九九| 3D动漫精品啪啪一区二区下载| 2022国产精品自产拍在线观看| 国产精品综合AV一区二区国产馆| 成人综合久久精品色婷婷| 久久久精品人妻久久影视| 国产精品民宅偷窥盗摄| 精品久久中文字幕有码| 国产在视频线在精品|