httpd配置虛擬主機及訪問控制

一、虛擬主機是在一臺物理服務器上配置多個站點,有三種實現方法:基於ip,基於端口,基於域名


 配置虛擬主機建議在單獨一個文件,並在主配置文件使用 include "xxx" 包含進來,這樣使配置件更清晰


  1. 基於端口:應先在主配置文件中增加一個監聽的端口listen 8080

    <virtualhost 172.16.168.140:80>

      options none

      documentroot "/var/www/80"

    </virtualhost>

    

    <virtualhost 172.16.168.140:8080>

      options none

      documentroot "/var/www/8080"

    </virtualhost>

 2.基於IP:

    <virtualhost 172.16.168.150:80>

     options none

     documentroot "/var/www/ip150"

    </virtualhost>

 3.基於域名:apatche2.2版本應先在虛擬主機配置文件增加 namevirtualhost 172.16.168.140:80

   如果想通過多個域名訪問到同一個網站,可以定義多個servername

    <virtualhost 172.16.168.140:80>

      servername www.a.com

      servername www.an.com

      options none

      documentroot "/var/www/a.com"

    </virtualhost>

    

    <virtualhost 172.16.168.140:80>

      servername www.b.com

      options noe

      documentroot "/var/www/b.com"

    </virtualhost>

二、配置用戶對web資源的訪問控制:如果某些資源不想被用戶訪問,可以通過建立授權讓用戶訪問或根據ip地址進行限制

    通過建立授權:

     1.使用htpasswd 命令創建用戶名和密碼文件: htpasswd -c /etc/httpd/conf/htpasswd zzc (注意:當需要創建第二個用戶時,去掉-c選項,否則會把第一次創建的用戶給清除掉)

     <directory "/var/www/secret">

      authtype basic

      authname "is a sceret..."

      authuserfile "/etc/httpd/conf/htpasswd"

      require (user abc | valid-user) valid-user指全部用戶 user可以指定具體某個用戶

     </directory>

     如果想通過組來管理,需先建立一個組文件:

     wKiom1Rd25Sj65pSAAAa1LzyUD4957.jpg

     然後在文件中寫上組名和已經(使用htpasswd)創建好的用戶:

     wKioL1Rd3JaRBY8BAAAW40-im9Q144.jpg

     最後在<directory>中增加下面兩條命令:

     authgroupfile "/etc/httpd/conf/htgroup"

     require group myuser


    通過限定ip地址:

     <directory "/var/www/secret“>

      order deny,allow

      deny from 192.168.100.1

     </directory>

    order指定 先拒絕後允許 或 先允許後拒絕

    先拒絕後允許:默認允許,如果不指定拒絕的地址將允許所有地址

    先允許後拒絕:默認拒絕,如果不指定允許的地址將拒絕所有地址

    地址可以是 主機名、網段(172.16.0.0 可以簡寫爲172.16)、具體某個ip地址

    地址之間用逗號隔開

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章