今天小编就为大家分享一篇关于Nginx服务器屏蔽与禁止屏蔽网络爬虫的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
每个网站通常都会遇到很多非搜索引擎的爬虫,这些爬虫大部分都是用于内容采集或是初学者所写,它们和搜索引擎的爬虫不一样,没有频率控制,往往会消耗大量服务器资源,导致带宽白白浪费了。
其实Nginx可以非常容易地根据用户代理过滤请求,我们只需要在需要统一资源定位器入口位置通过一个简单的正则表达式就可以过滤不符合要求的爬虫请求:
位置/{
if($ http _ user _ agent ~ * " python | curl | Java | wget | http client | ok http ){
返回503;
}
# 其它正常配置
.
}
注意:变量$ http _用户_代理是一个可以直接在位置中引用的Nginx变量。~*表示不区分大小写的正则匹配,通过大蟒就可以过滤掉80%的计算机编程语言爬虫。
Nginx中禁止屏蔽网络爬虫
服务器{
听80;
服务器名www.xxx.com;
# charset锦鲤8-r;
# access _ log日志/主机。访问。日志总管;
#位置/{
#根超文本标记语言
#索引index.htmlindex.htm;
#}
if($ http _ user _ agent ~ *)qihoobot | Baiduspider | Google bot | Google bot-Mobile | Google bot-Image | media partners-Google | Adsbot-Google | Feedfetcher-Google | Yahoo!啧啧|雅虎!slurp China | YoudaoBot | Sosospider |搜狗蜘蛛|搜狗网络蜘蛛| MSNBot | ia _ archiver |番茄机器人){
返回403;
}
地点~ ^/(.*)$ {
proxy _ pass http://本地主机:8080;
代理_重定向关闭
proxy _ set _ header主机$主机
proxy _ set _ header X-Real-IP $ remote _ addr;
proxy _ set _ header X-Forwarded-For $ proxy _ add _ X _ Forwarded _ For;
client _ max _ body _ size 10m
客户端_正文_缓冲区_大小128k
代理连接超时90
代理发送超时90
代理读取超时90
proxy _ buffer _ size 4k
proxy _ buffers 4 32k
proxy _ busy _ buffers _ size 64k
代理_临时_文件_写入_大小64k
}
# error _ page 404/404。html
#将服务器错误页面重定向到静态页面/50x.html
#
error _ page 500 502 503 504/50x。html
location=/50x.html {
根超文本标记语言
}
#将服务器端编程语言(Professional Hypertext Preprocessor的缩写)脚本代理给街头流氓监听127.0.0.1:80
#
#位置~ 。php$ {
# proxy _ pass http://127。0 .0 .1;
#}
#将服务器端编程语言(Professional Hypertext Preprocessor的缩写)脚本传递给FastCGI服务器监听127.0.0.1:9000
#
#位置~ 。php$ {
#根超文本标记语言
# fastcgi _ pass 127。0 .0 .1:9000;
# fastcgi _ index index.php;
# fastcgi _ param SCRIPT _ FILENAME/scriptsfastcgi _ SCRIPT _ name;
#包含fastcgi _ params
#}
#拒绝访问htaccess。文件,如果街头流氓的文档根
#赞同nginx的观点
#
#location ~ / .ht {
#否认一切;
#}
}
可以用卷曲测试一下
www.xxx.com奇虎机器人
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接