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>

     如果想通过组来管理,需先建立一个组文件:

    

     然后在文件中写上组名和已经(使用htpasswd)创建好的用户:

     

     最后在<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地址

    地址之间用逗号隔开

本文出自 “好记性不如敲键盘” 博客,请务必保留此出处http://8718813.blog.51cto.com/8708813/1574423

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。