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博文 尚未测试有效性