nginx通过User-Agent判断是否为蜘蛛访问,如果为蜘蛛,则跳转到后端指定服务器

蜘蛛访问,是通过HTTP返回状态判断网站是否正常,很多人为了方便,直接return一个 403出去,这样对权重有很大的影响,我们可以通过nginx跳转,判断user-agent如果为蜘蛛,直接跳到后端指定服务器,这样则不会影响到当前web环境。。。

ip:

nginx:192.168.3.142

后端蜘蛛服务器:192.168.2.147

修改Nginx配置文件

………….

upstream zhizhu {

server 192.168.2.147;

}

 

server{

location /   {

if ($http_user_agent ~* “Baiduspider|360Spider|bingbot|Googlebot|Sogou web spider”) {    #####判断多个蜘蛛,中间用| 隔开
proxy_pass http://zhizhu;
}

}

………………..

}

 

……….

 

 

 

完成之后,/etc/init.d/nginx reload

 

测试访问

 

# curl -I -A “Baiduspider” http://www.caonima.com
HTTP/1.1 200 OK
Server: nginx/1.6.3
Date: Fri, 08 Jul 2016 07:11:09 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Set-Cookie2: aiyuke_cookie=8b801b25.5371a8061fc8b; path=/; max-age=31536000
X-Powered-By: PHP/5.4.10
BackendServer: 2.147

 

本文摘自csdn博文 尚未测试有效性

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。