nginx服务器怎么屏蔽爬虫(nginx 防盗链防爬虫配置详解)
nginx服务器怎么屏蔽爬虫
nginx 防盗链防爬虫配置详解新建配置配置文件 (例如进入到nginx安装目录下的conf目录,创建: agent_deny.conf)
禁止Scrapy等工具的抓取 if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { return 403; }
禁止指定UA及UA为空的访问
#forbidden Scrapy if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { return 403; } #forbidden UA if ($http_user_agent ~ "Bytespider|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" ) { return 403; } #forbidden not GET|HEAD|POST method access if ($request_method !~ ^(GET|HEAD|POST)$) { return 403; }
然后,在网站相关配置中的 server段插入如下代码: include agent_deny.conf;
重启nginx:
/data/nginx/sbin/nginx -s reload
测试 使用curl -A 模拟抓取即可,比如:
curl -I -A 'YYSpider' <<www.xxx.con>>
结果
[root@11 conf]# curl -I -A 'YYSpider' www.xxx.cn
HTTP/1.1 403 Forbidden
Server: nginx/1.12.0
Date: Wed, 24 Apr 2019 11:35:21 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive
模拟UA为空的抓取:
curl -I -A' ' <<www.xxx.cn>>
结果
[root@11 conf]# curl -I -A' ' www.xxx.cn
HTTP/1.1 403 Forbidden
Server: nginx/1.12.0
Date: Wed, 24 Apr 2019 11:36:06 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive
模拟百度蜘蛛的抓取:
curl -I -A 'Baiduspider' <<<www.xxx.cn>>>
[root@11 conf]# curl -I -A 'Baiduspider' www.xxx.cn
HTTP/1.1 200 OK
Server: nginx/1.12.0
Date: Wed, 24 Apr 2019 11:36:47 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Fri, 12 Apr 2019 13:49:36 GMT
Connection: keep-alive
ETag: "5cb09770-264"
Accept-Ranges: bytes
UA类型
FeedDemon 内容采集 BOT/0.1 (BOT for JCE) sql注入 CrawlDaddy sql注入 Java 内容采集 Jullo 内容采集 Feedly 内容采集 UniversalFeedParser 内容采集 ApacheBench cc攻击器 Swiftbot 无用爬虫 YandexBot 无用爬虫 AhrefsBot 无用爬虫 YisouSpider 无用爬虫(已被UC神马搜索收购,此蜘蛛可以放开!) jikeSpider 无用爬虫 MJ12bot 无用爬虫 ZmEu phpmyadmin 漏洞扫描 WinHttp 采集cc攻击 EasouSpider 无用爬虫 HttpClient tcp攻击 Microsoft URL Control 扫描 YYSpider 无用爬虫 jaunty wordpress爆破扫描器 oBot 无用爬虫 Python-urllib 内容采集 Indy Library 扫描 FlightDeckReports Bot 无用爬虫 Linguee Bot 无用爬虫
nginx 防盗链配置
背景:防止第三方引用链接访问我们的图片,消耗服务器资源和网络流量,我们可以在服务器上做防盗链限制。
实现防盗链的方式有两种:refer方式和签名方式。
refer方式实现防盗链
工作模块:ngx_http_referer_module。
作用变量:$invalid_referer,全局变量。
配置域:server, location
配置:
server { listen 80; server_name www.imcati.com refer-test.imcati.com; root /usr/share/nginx/html; location ~*\.(gif|jpg|jpeg|png|bmp|swf)$ { valid_referers none blocked www.imcati.com; if ($invalid_referer) { return 403; } } }
- valid_referers: 指定资源访问是通过以下几种方式为合法,即白名单。 vaild_referers 有效的引用连接,如下,否则就进入$invaild_refere,返回403 forbiden。
- none:允许缺失的头部访问。
- blocked:允许referer没有对应值的请求。
- server_names:若referer站点域名与server_name中本机配的域名一样允许访问。
到此这篇关于nginx 防盗链防爬虫配置详解的文章就介绍到这了,更多相关nginx 防盗链防爬虫配置内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- nginx反向代理多个server(Nginx反向代理多个服务器的实现方法)
- nginxlocation和alias的区别(nginx搭建图片服务器的过程详解root和alias的区别)
- nginx负载均衡原理3种(Nginx负载均衡以及动静分离的原理与配置)
- nginx和php怎么结合(php和nginx交互实例讲解)
- 宝塔nginx装哪个版本(宝塔面板nginx关闭状态,启动不了解决办法)
- nginx做图片服务器代理(使用nginx动态转换图片大小生成缩略图)
- nginxmac启动脚本(Mac M1 Nginx 配置多站点的实现)
- 实战部署nginxdocker(基于Docker、Nginx和Jenkins实现前端自动化部署)
- nginx配置两个前端web服务(你真的了解如何将Nginx配置为Web服务器吗)
- nginx查看请求协议(Nginx之Http模块系列之autoindex模块的具体使用)
- docker安装nginx如何配置(docker部署nginx并且挂载文件夹和文件操作)
- nginx最佳配置(nginx和lvs各自的优劣以及适合的使用环境)
- nginx负载均衡高怎么用(Nginx + consul + upsync 完成动态负载均衡的方法详解)
- nginxhttp转https原理(nginx如何将http访问的网站改成https访问)
- nginx反向代理流程详解(本地通过nginx配置反向代理的全过程记录)
- docker中如何使用nginx(docker nginx实现一个主机部署多个站点操作)
- 医事文化谈屑 | 古人的名 字 号(医事文化谈屑古人的名)
- ()
- 网友很惭愧,自己写了很多年的字,到头来还不如一名小学生写的好(自己写了很多年的字)
- 中华第一楷 张瑞龄 86岁高龄,苦练楷书71年,一幅字卖593万(中华第一楷张瑞龄)
- 冯骥才 年意(冯骥才年意)
- ()
热门推荐
- angular引入组件库(详解Angular组件之中间人模式)
- 云服务器无法访问网站(网站放在香港云服务器上,出现卡顿怎么解决?)
- phpstudy使用教程学习(phpStudy 2016 使用教程详解支持PHP7)
- php如何定时执行某项(php解决crontab定时任务不能写入文件问题的方法分析)
- php中把字符串分开的函数(PHP字符串中抽取子串操作实例分析)
- dedecms修改教程(还原dedecms数据后系统基本参数空白的解决方法)
- linux基础教程磁盘配额的设计(WDCP Linux服务器磁盘爆满的处理方法)
- 数据库常见的索引结构(数据库索引知识点整理)
- laravel api 调试(Laravel框架自定义公共函数的引入操作示例)
- 面试时紧张该怎么办
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9