1、屏蔽User-Agent
User-Agent是指浏览器或爬虫发送给服务器的HTTP请求头部信息之一,通过检查User-Agent来判断请求是否来自搜索引擎爬虫。
检查HTTP请求头部中是否包含bot、crawl或spider等字眼,如果包含则返回403错误码,拒绝该请求。
if ($http_user_agent ~*"bot|crawl|spider"){ return 403; }
2、屏蔽蜘蛛IP地址
拒绝IP地址为123.45.67.89的访问请求,并允许其他IP地址访问该页面。多个IP用空格隔开,搜索引擎的蜘蛛IP可以去网上找。
location /{ deny 123.45.67.89; allow all; }
3、屏蔽Referer
Referer是指从哪个页面链接过来的信息,在防止爬虫方面也有一定作用。检查HTTP请求头部中是否包含来自谷歌、雅虎或必应等搜索引擎的Referer,如果包含则返回403错误码,拒绝该请求。
if ($http_referer ~*(google|yahoo|bing)){ return 403; }
4、屏蔽Cookie
检查HTTP请求头部中是否包含名为crawlercookie的Cookie,如果包含则返回403错误码,拒绝该请求。
if ($http_cookie ~*"crawlercookie"){ return 403; }
5、屏蔽URL参数
检查请求URL中是否包含名为searchengine的参数,如果包含则返回403错误码,拒绝该请求。
if ($args ~*"searchengine"){ return 403; }
6、限制访问频率
我们可以使用Nginx提供的limit_req模块来限制爬虫的访问频率。限制每个爬虫IP地址每秒钟只能访问5次,超过这个频率则会返回503错误码。
limit_req_zone $binary_remote_addr zone=bot:10m rate=5r/s;server { location /{ limit_req zone=bot burst=10 nodelay; }}
7、限制访问速度
限制每个爬虫IP地址每秒钟只能下载10KB的数据,超过这个速度则会被限制。
location /{ limit_rate 10k; }
8、屏蔽反向dai理
我们可以使用Nginx作为反向dai理服务器,屏蔽搜索引擎爬虫。将请求转发到后端服务器,并在检查User-Agent之后返回403错误码。
location /{ proxy_pass ; proxy_set_header Host $host; if ($http_user_agent ~*"bot|crawl|spider"){ return 403; } }
9、Robots.txt屏蔽
Robots.txt是一种文本文件,用于告诉搜索引擎哪些页面可以被抓取,哪些页面不能被抓取。将请求/robots.txt的页面指向/var/www/目录下的robots.txt文件,从而实现屏蔽搜索引擎爬虫的目的。
location /robots.txt { alias /var/www/robots.txt; }
nginx
2022-11-28 19Nginx是一个高性能的HTTP和反向代理web服务器,也是站长常见的网站环境之一.nginx凭借高性能低消耗近几年越来越多站长使用,学习好nginx也成为站长必备知识点.我的...
- 开源的Nginx配置文件解析工具 [2024-09-08]
- Nginx常用301重定向代码整理 [2024-02-07]
- Nginx限制国内IP用户访问网站 [2024-01-05]
- nginx判断某个目录不跳转https,其他目录强制跳转https配置规则 [2024-01-03]
- nginx实现子域名301跳转到另外一个域名对应子域名 [2023-12-29]