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

        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號
        主站蜘蛛池模板: 国产精品 日韩欧美| 国产精品国产三级在线专区| mm1313亚洲国产精品无码试看| 日韩精品久久无码人妻中文字幕| 国产精品亚洲高清一区二区| 99re6在线视频精品免费| 亚洲国产精品久久久天堂| 精品国产乱码久久久久久浪潮| 青青青国产精品国产精品久久久久| 久久精品国产99久久无毒不卡 | 日韩精品少妇无码受不了| 欧美国产成人久久精品| 999国产精品视频| 久久青青草原精品影院| 国产精品无码久久综合| 日本午夜精品一区二区三区电影 | 日韩精品一区二区三区四区 | 亚洲国产小视频精品久久久三级| 国产精品视频免费一区二区| 中国精品videossex中国高清| 国产精品一二区| 精品乱人伦一区二区三区| 国产办公室秘书无码精品99| 激情亚洲一区国产精品| 精品人妻大屁股白浆无码| 国产美女久久精品香蕉69| 人人妻人人澡人人爽人人精品电影 | 亚洲无码日韩精品第一页| 欧美日韩综合精品| 午夜精品久久久内射近拍高清| 久久久精品人妻无码专区不卡 | 国产精品99久久久久久宅男| 99精品伊人久久久大香线蕉| 亚洲精品欧美综合在线| 97精品国产97久久久久久免费| 亚洲国产精品婷婷久久| 中国精品videossex中国高清| 91国内揄拍国内精品情侣对白 | 国产精品成人观看视频网站| 国产精品毛片一区二区| 国产精品免费αv视频|