Apache 的访问控制配置

更新日期: 2019-07-29阅读: 2.5k标签: Apache

为了更好地控制对网站资源的访问,所以需要为特定的网站目录添加访问授权。


客户机地址限制:
通过 Require 配置项,可以根据主机的主机名或IP地址来决定是否允许客户端访问,在 httpd服务器的主配置文件的 <Location>、<Directory>、<Files>、<Limit> 配置段中均可以使用 Require 配置项来控制客户端的访问。
常用格式如下:
Require all granted :表示允许所有主机访问
Require all denied :表示拒绝所有主机访问
Require local :表示仅允许本地主机访问
Require [not] host <主机名或域名列表> :表示允许或拒绝指定主机或域访问
Require [not] IP <IP地址或网段列表> :表示允许或拒绝制定IP或网段访问


具体用法:

路径:/usr/local/httpd/conf/httpd.conf

1、允许所有

<Directory "/usr/local/httpd/htdocs">
  …… // 省略部分内容
  Require all granted    #允许所有主机访问 
</Directory>

2、仅允许某台主机

<Directory "/usr/local/httpd/htdocs">
     …… //省略部分内容
     Require ip 192.168.1.20       #允许单个主机访问
</Directory>

3、仅拒绝某台主机或网段(注意:在使用 not 禁止访问时要将其置于<RequireAll></RequireAll>容器中,在容器中配置相应策略):

<Directory "/usr/local/httpd/htdocs">
        …… //
        <RequireAll>
                  Require   all  granted      # 允许所有主机访问
                  Require   not   ip  192.168.0.0/24   192.168.1.20    # 拒绝0.0网段,1.20 主机
        </RequireAll>
</Directory>

当未被授权的客户机访问目录时,将会被拒绝,显示 HTTP 403 错误 报错


用户授权限制:
基于用户的访问控制包含认证(Authentication)和授权(Authorization)两个过程,是 Apache 允许指定的用户使用用户名和密码访问特定资源的一种方式。
Apache支持使用摘要认证(Digest)和基本认证(Basic)两种方式。注意:使用摘要认证需要在编译 httpd 之前加上“--enable-auth-digest”
1、创建用户认证数据文件:

 [root@www /]# cd /usr/local/httpd/
 [root@www httpd]# bin/htpasswd -c /usr/local/httpd/conf/.awspwd zhangsan
   New password:                    //-c 选项表示新建立此文件 //根据提示设置密码
   Re-type new password:       // 省略 -c,表示指定的用户数据文件已存在
   Adding password for user zhangsan    
  [root@www httpd]# cat /usr/local/httpd/conf/.awspwd     //确认用户数据文件
   zhangsan:$apr1$ROjz961w$dafGJ0Uf2BRIIlaykDkJH/
   lisi:$apr1$Zke/LK3e$zlTZ1W9zwt3u5w.91LDWd/

2、添加用户授权配置:

 [root@www /]# vim /usr/local/httpd/conf/httpd.conf 
 <Directory  "/usr/local/httpd/htdocs">
 …… // 省略部分内容
 Require all denied
        authname "webserver"     # 定义受保护的领域名称
        authtype basic                  # 设置认证类型
        authuserfile /usr/local/httpd/conf/.awspwd     #设置用于保护用户账号、密码的认证文件路径
        require valid-user              # 要求只有认证文件中的合法用户才能访问(若只授权给单个用户,可改指定的用户名:如 webadmin)
</Directory>
[root@www /]# systemctl restart httpd   # 重启服务使新配置生效

需要注意的是,用户访问授权与主机访问控制同时设置时,设置的主机访问控制优先生效。所以需要拒绝所有访问,才能使用授权的用户名来访问网站



链接: https://www.fly63.com/article/detial/4416

Apache2简单配置

Apache2进行简单配置:安装Apache2、启动服务、配置虚拟站点_在sites-available目录下配置自己的虚拟站点、进入sites-avaliable目录后,有两个默认的配置文件

apache的<directory>语句以及属性的含义

在整完apache和tomcat的之后我觉得有必要把<directory>和它下面的属性捋顺一下。缺省apache不允许访问http目录(没有定义,就没有访 问权限)、无限制目录访问、有限制目录访问

Apache开启gzip压缩

服务器设置 gzip 压缩是 web 开发中很普遍的做法。使用gzip压缩后可以使需要加载的文件大小缩小到原来的1/4左右(最大压缩级别)。然后在客户端解压即可。

apache反向代理出现502调整

项目上线后,会在接口调用时客户端出现502异常,而服务端则对该此请求作出处理。经过排查后得知是由于请求并发量大,造成超过请求超时间,但是apache中队列已经加载到请求信息,所有会对请求作出处理。

Apache 配置虚拟主机三种方式

假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP;修改hosts文件,添加三个域名与之一一对应。基于主机名:设置域名映射同一个IP,修改hosts

Apache Forbidden 403错误提示

在配置Linux的 Apache服务时,经常会遇到http403错误,我今天配置测试时也出现了,最后解决了,总结了一下。http 403错误是拒绝访问的意思,有很多原因的。还有,这些问题在win平台的Apache里一样会发生

Apache中.htaccess文件利用的总结与新思路拓展

在普遍使用的LAMP架构中,Apache与PHP之间的交互,有三种常见的方式。第一种是最通用最常见的Module方式,即在httpd.conf中使用LoadModule的方式,将php的dll或者so文件加载到apache当中。

apache开启对gzip的支持

配置后会优先使用同名的压缩文件返回到浏览器端,浏览器进行解压,由于文件体积减小了,从而大大提高了对文件的加载速度。

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!