关于一些nginx的高级扩展应用
作者:网络转载 发布时间:[ 2013/4/2 13:46:28 ] 推荐标签:
还有一种是用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
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11