从Apache2.2升级到Apache2.4后,发现原来用来限制部分IP和垃圾网络爬虫的访问控制规则不起作用,查询后才发现,Apache2.4中开始使用mod_authz_host这个新的模块来进行访问控制和其他的授权检查。原来在Apache2.2版本下用以实现网站访问控制的Order,Allow,Deny指令需要替换为新的Require访问控制指令。

注意:使用require指令时,需要在指令外添加<RequireAll></RequireAll>标签对,否则重启Apache2.4加载规则时将出现错误:" negative Require directive has no effect in <RequireAny> directive "。

下面直接给出一些实例对Require指令的使用进行说明:

例1:允许所有访问请求

Apache2.4下的配置:

<Directory xxx/www/yoursite><RequireAll>Require all granted</RequireAll></Directory> 

例2:拒绝所有访问请求

Apache2.4下的配置:

<Directory xxx/www/yoursite><RequireAll>Require all denied</RequireAll></Directory>

例3:只允许来自特定域名主机的访问请求,其他请求将被拒绝

Apache2.4下的配置:

<Directory xxx/www/yoursite><RequireAll>Require host google.com</RequireAll></Directory>

例4:只允许来自特定IP或IP段的访问请求,其他请求将被拒绝

Apache2.4下的配置:

<Directory xxx/www/yoursite><RequireAll>Require ip 192.120 192.168.100 192.168.1.1</RequireAll></Directory>

例5:允许所有访问请求,但拒绝来自特定IP或IP段的访问请求(阻止恶意IP或恶意爬虫网段的访问)

Apache2.4下的配置:

<Directory xxx/www/yoursite><RequireAll>Require all grantedRequire not ip 192.168.1.1Require not ip 192.120 192.168.100</RequireAll></Directory>

例6:允许所有访问请求,但拒绝某些User-Agent的访问请求(通过User-Agent屏蔽垃圾网络爬虫)

使用mod_setenvif通过正则表达式匹配来访请求的User-Agent,并设置内部环境变量BADBOT,最后拒绝BADBOT的访问请求。

Apache2.4下的配置:

<Directory xxx/www/yoursite>SetEnvIfNoCase User-Agent ".*(FeedDemon|JikeSpider|AskTbFXTV|CrawlDaddy|Feedly|Swiftbot|ZmEu|oBot).*" BADBOTSetEnvIfNoCase User-Agent "brandwatch" BADBOTSetEnvIfNoCase User-Agent "rogerbot" BADBOT<RequireAll>Require all grantedRequire not env BADBOTRequire not ip 192.168.100.1</RequireAll></Directory>

其它require访问控制指令用法如下:
Require all granted #允许所有
Require all denied #拒绝所有
Require env env-var [env-var] ... #允许匹配环境变量中任意一个
Require method http-method [http-method] ... #允许特定的HTTP方法(GET/POST/HEAD/OPTIONS)
Require expr expression #允许,表达式为true
Require user userid [ userid ] ... #允许特定用户
Require group group-name [group-name] ... #允许特定用户组
Require valid-user # #允许,有效用户
Require ip 192.100 192.168.100 192.168.100.5 #允许特定IP或IP段,多个IP或IP段间使用空格分隔

参考:
https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require
http://httpd.apache.org/docs/2.4/upgrading.html
http://www.jb51.net/article/64280.htm

转载于:https://www.cnblogs.com/gongchixin/articles/7484700.html

Apache2.4使用require指令进行访问控制--允许或限制IP访问/通过User-Agent禁止不友好网络爬虫...相关推荐

  1. Linux 实用指令 -- 网络配置(查看网络IP和网关、 ping 测试主机之间网络连通、Linux网络环境配置(指定固定ip))

    文章目录 1. 网络配置 1.1 查看网络IP和网关 1.1.1 查看虚拟网络编辑器 1.1.2 这里可以修改ip地址(修改虚拟网络的ip) 1.1.3 这里可以修改网关(虚拟网络的网关) 1.1.4 ...

  2. 数据链路层介质访问控制——信道划分、随机访问和轮询访问

    介质访问控制 介质访问控制是数据链路层的子层,通过采取一定的措施,使共享信道的节点之间通信不会发生相互干扰.常用的介质访问控制方法有:信道划分介质访问控制.随机访问介质访问控制和轮询访问介质访问控制. ...

  3. linux c语言设置ip,linux 下用指令和C语言来设置IP,MASK,gateway

    linux用指令来设置IP,MASK,GATEWAY: //终端指令实现 //ifconfig eth0 192.168.0.0 netmask 255.255.0.0 //route add def ...

  4. apache配置指令速查

    AcceptFilter AcceptFilter 指令 说明 根据协议类型对监听Socket进行优化 语法 AcceptFilter protocol accept_filter 作用域 serve ...

  5. 访问控制列表(ACL)基本的配置以及详细讲解

    [网络环境]   网络时代的高速发展,对网络的安全性也越来越高.西安凌云高科技有限公司因为网络建设的扩展,因此便引入了访问控制列表(ACL)来进行控制,作为网络管理员我们应该怎么来具体的实施来满足公司 ...

  6. nginx(三)status状态页面的相关信息及配置,以及nginx的访问控制配置

    前言: 作为一个站长,了解本站实时的状态信息也是维护网站的重要信息之一,同时也能通过一些监控工具,例如zabbix对状态页面进行监控,从而取到实时的状态信息: **ngx_http_stub_stst ...

  7. LAMP 架构深度优化记录

    1.Apache worker/prefwork模式说明 在linux中,我们可以用httpd-l 查看安装的模块是prefork模式还是worker模式 [root@LAMP ~]# /applic ...

  8. Apache运维中常用功能配置笔记梳理

    Apache 是一款使用量排名第一的 web 服务器,LAMP 中的 A 指的就是它.由于其开源.稳定.安全等特性而被广泛使用.下边记录了使用 Apache 以来经常用到的功能,做此梳理,作为日常运维 ...

  9. LAMP架构深度优化

    转载地址:https://blog.51cto.com/ucode/1750564 ©著作权归作者所有:来自51CTO博客作者027ryan的原创作品,如需转载,请注明出处,否则将追究法律责任 1.A ...

最新文章

  1. 发现一个“佛系记账本”
  2. 客户端验证:JQuery Validation Plugin
  3. 【CyberSecurityLearning 56】自动化注入
  4. 最优传输理论和生成模型的几何观点
  5. [蓝桥杯] 连号区间数
  6. 图合成与差分隐私(图结构和节点属性)论文笔记
  7. 堆排序的应用-优先级队列
  8. 开源媒体标注系统cvat
  9. HDU 3333-Turing Tree(BIT好题)
  10. SQL基本语句(整理)
  11. Mac创建一个vue项目
  12. android 展开收起功能,Android非常简单的TextView展开和收起,在列表中TextView文章展开全部和收起...
  13. Xilinx HLS 学习笔记1
  14. python画函数图像-Python 绘制你想要的数学函数图形
  15. 将知网caj格式转换成pdf格式
  16. JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
  17. 第二届阿里巴巴大数据智能云上编程大赛亚军比赛攻略
  18. 盘企lcms php开发框架,LCMS操作 · 盘企LCMS PHP开发框架文档 · 看云
  19. spring动态代理
  20. 安全防御-----IDS

热门文章

  1. 什么相片可以两张弄成一张_怎么将两张图片合成一张?
  2. anaconda python_Anaconda下Python环境下载及安装
  3. 深度学习数据集制作_一篇文章搞定人工智能之深度学习创建训练数据集的方法
  4. 如何上传文件及文件夹到IPFS
  5. 【杂题总结】洛谷-3959 宝藏
  6. [Web 前端] SuperAgent中文使用文档
  7. 使用Castle做类的增强
  8. Hive partition prune Failed
  9. (20120731)Android中的各种对话框总结(dialog)
  10. java nio 文件传输