您的位置:首页 > 运维架构 > Nginx

Nginx配置——禁止指定user_agent

2017-01-01 20:35 295 查看
用途
你的网站访问量很大,而且服务器资源比较紧缺,因为我们的成本要稍微控制地严谨一点,所以呢,服务器稍微有点吃力,那么,网站呢它都会被搜索引擎的蜘蛛去爬取,它们去爬取的时候呢,跟咱们真人访问的行为是一样的,同样也会访问我们的数据库,同样也会耗费php资源,所以这个时候,有必须把一些不太重要的搜索引擎、蜘蛛爬虫给它禁掉。
## 编辑配置文件
[root@wy ~]# vim /usr/local/nginx/conf/vhosts/test.conf
if ($http_user_agent ~* 'curl|baidu|111111') {
return 403;
}
解释说明:
http_user_agent 浏览器标识;
~* 忽略大小写匹配
~ 区分大小写匹配



## 检查并重新加载
[root@wy ~]# /usr/local/nginx/sbin/nginx -t
[root@wy ~]# /usr/local/nginx/sbin/nginx -s reload
## 测试
[root@wy ~]# curl -x127.0.0.1:80 www.test.com/forum.php -I
HTTP/1.1 403 Forbidden
解释说明:
curl这个标识是被拒绝的
## curl -A 模拟浏览器标识进行测试
[root@wy ~]# curl -A "slfjsf" -x127.0.0.1:80 www.test.com/forum.php -I
HTTP/1.1 200 OK
解释说明:
模拟这个并没有放入被拒绝里
[root@wy ~]# curl -A "sl111111fjsf" -x127.0.0.1:80 www.test.com/forum.php -I
HTTP/1.1 403 Forbidden
解释说明:
含有了111111,这个是放了被拒绝里
[root@wy ~]# curl -A "sBAIDUfjsf" -x127.0.0.1:80 www.test.com/forum.php -I
HTTP/1.1 403 Forbidden
解释说明:
上面设置了不区分大小写
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息