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

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號
人妻精品久久久久中文字幕69| 国内精品视频九九九九| 亚洲中文字幕久久精品无码A| 国产成人精品视频一区二区不卡| 国产精品亚洲精品日韩已方 | 精品无码一区二区三区水蜜桃| 国产精品亚洲专区一区| www亚洲精品久久久乳| 日韩国产精品视频| 国产精品久久久久aaaa| 久久精品99久久香蕉国产色戒 | 免费视频成人国产精品网站 | 国产原创精品 正在播放| 国产精品亚洲w码日韩中文| 亚洲国产精品成人| 精品3d动漫视频一区在线观看| 日韩内射美女人妻一区二区三区| 国产精品99久久久| 无码A级毛片日韩精品| 国产精品爽黄69天堂a片| 国产精品视频一区麻豆| 国产精品专区第二| 国产精品一区二区久久精品| 精品久久久久久蜜臂a∨| 国产69精品久久久久777| 精品无码国产自产在线观看水浒传 | 国产精品美女免费视频观看 | 久久久久久精品无码人妻| 精品一区二区三区在线成人 | 久久精品成人无码观看56| 精品久久久久久国产91| 久久99国产精品久久| 久久91精品国产91久久麻豆| 国产精品无码久久久久久| 久久国产精品-久久精品| 久热青青青在线视频精品| 久久久久亚洲精品无码系列| 夜色www国产精品资源站| 奇米影视7777久久精品| 91麻豆精品福利在线观看| 亚洲精品456在线播放|