请 WEB 蜘蛛 们绕个道..

范堡 发布于 2010/02/07 00:00
阅读 584
收藏 0

因为某些原因,我的网站的入口域名指向HK,由Nginx反向代理回内陆的服务器。

HK 访问起来速度还是不错的,但宽带很少,最大只有2M,超过的话访问会越来越慢。

我在广州设立了squid缓存服务器的架构,分发了所有静态文件。基本上HK 就只有主页的php 传输了。
但这也不小,用 Firebug 查看,首页基本上都有10K 再+上其余的重定向数据。再小20K 左右走不掉。

经过调优,强制启用了Nginx反向代理中也使用 gzip,即 (内陆Nginx) --> gzip --> (香港Nginx) --> gzip --> 用户

流量缩少了10% 但还是处于紧张边缘。
查看 HTTP 访问日志,得出有 google baidu 等蜘蛛抓得也挺狠!于是想到,能不能把搜索引擎的爬虫也从定向到内陆的服务器减少负担?

于是就有了以下这个 Nginx 的配置:

香港配置:

        if ($http_user_agent ~* (baiduspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)) {
            rewrite  ^/(.*)$  http://gznow.spider.someqone.com/$1  permanent;
        }
直接+到 server {   里头即可。意思为:
匹配客户端User agent 不分大小写,凡是含有 baidu,google,bing....
之类爬虫。从定向到指定地址,并匹配原有 url 后续 即:

http://www.gznow.org/bbs/index.php
301 从定性为:
http://gznow.spider.someqone.com/bbs/index.php

这样的话既不影响搜索引擎的收录,也可以把流量分配给其他的服务器。
但如果日后搜索引擎收录的访问地址也成了从定向的地址咋办?
所以就要再多一步,把从定向的目的服务器配置一下:

        if ($http_user_agent ~* (Safari|Navigator|Chrome|Opera|Firefox|msie)) {
            rewrite  ^/(.*)$  http://www.gznow.org/$1  permanent;
        }

也是直接加到 server { 即可
原来跟处理爬虫的一样,不分大小写匹配 user agent 中包含的主流浏览器 msie , firefox , chrome....
从定向到指定地址,并匹配原有 url 后续.
这样即使访客由搜索引擎指引到了从定向的服务器,也能从定向回去。

呵,特殊例子,分享一下。
这么一作,我HK 服务器的流量可立马又省下了 30% 。 放心了不少。

 

加载中
0
红薯
红薯

这种做法对搜索很不利哦

0
苦寒竹
苦寒竹

搜索引擎跟扫描器比起来真不算什么。

那些挖掘鸡一样的扫描器,每秒扫100来下……

返回顶部
顶部