还有一种是用nginx的来判断

if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
// 添加你需要处理的语句,比如rewrite等
}

  可能一些设备可能没有识别的,大家可以看分析日志,然后把 User-Agent的关键字写到if里面~

  nginx的配置文件if语句是不支持“并且”和“或者”这样的多重条件判断的。在一些情况下,我们又需要if语句进行多个条件的判断,那么如何来实现呢?我们可以利用nginx的set语句设置变量的方法来解决。

  假设我们需要对 /123/ 路径进行rewrite,但同时要排除 /123/images/ 路径不对该路径进行rewrite,可以采用下面的解决办法:

set $doRewrite "0";

if ($request_uri ~ ^/123/) {
set $doRewrite "1";
}

if ($request_uri ~ ^/123/images/) {
set $doRewrite "0";
}

if ($doRewrite = "1") {
// do rewrite
}

  还有一个实例

  这个意思是判断真是的ip,然后根据ip做一些操作~ 这里用的map映射

map $http_x_forwarded_for $deny_access {
    default     0;
    1.2.3.4     1;
    1.2.3.5     1;
    1.2.3.6     1;
}

if ($deny_access = 1) {
    return 403;
}

  防盗链的一些个配置

location ~* .(gif|png|jpg|bmp|swf|flv)$ {
    valid_referers none blocked www.ruifengyun.com ruifengyun.com;

    if ($invalid_referer) {
            return 403;
    }
}

  以上的例子可以实现扩展名为 gif,png,jpg,bmp,swf,flv的url防止被盗链。如果你需要其它的url防止被盗链,添加相应的后缀即可。

  也可以 把return 403 替换成 #rewrite ^/ http://ruifnegyun.com/404.jpg;这样可以用另一种方法推广自己的网站

  nginx的限速的规则

  配置简单,只需3行

 

http{

    ……

    limit_zone one $binary_remote_addr 10m;

    ……

    server {

        location / {

            ……

            limit_conn one 2;

            limit_rate 40k;

        }

    }

}

  意思是:limit_zone针对每个IP定义一个存储session状态的容器。这个示例中定义了一个名叫one的10m大小的容器,这个名字会在后面的limit_conn中使用。limit_conn指定每个访客只能建立两条链接,limit_rate限制每条链接的速度不超过40K。所以,以上配置限制用户访问此站点总速度上限为80K。

  本文出自:http://rfyiamcool.blog.51cto.com/1030776/1167837