Nginx实现if多重判断配置方法示例
更新时间:2015年05月13日 10:09:42 投稿:junjie
这篇文章主要介绍了Nginx实现if多重判断配置方法示例,本文直接给出实现代码,需要的朋友可以参考下
nginx的配置中不支持if条件的逻辑与/逻辑或运算 ,并且不支持if的嵌套语法,我们可以用变量的方式来实现:
首先是伪代码(即不被nginx支持),写在这里只是为了方便理解:
复制代码 代码如下:
if ($remote_addr ~ "^(12.34|56.78)" && $http_user_agent ~* "spider") {
return 403;
}
下面这是等效的,并真实可用的配置
复制代码 代码如下:
set $flag 0;
if ($remote_addr ~ "^(12.34|56.78)") {
set $flag "${flag}1";
}
if ($http_user_agent ~* "spider") {
set $flag "${flag}2";
}
if ($flag = "012") {
return 403;
}
您可能感兴趣的文章:
相关文章
linux(centos5.5)/windows下nginx开启phpinfo模式功能的配置方法分享
某站点用到结合phpinfo功能的urlrewrite,在nginx中需要在nginx.conf文件中进行配置才可支持phpinfo2013-02-02
Nginx配置txt、pdf、doc、xls等文件直接下载的方法
这篇文章主要介绍了Nginx配置txt、pdf、doc、xls等文件直接下载的方法,配置方法很简单,本文直接给出配置示例,需要的朋友可以参考下2015-04-04
解决nginx报错信息 client intended to send too large body: 1331696
这篇文章主要介绍了解决nginx报错 client intended to send too large body: 1331696 bytes的相关资料,需要的朋友可以参考下2017-02-02


最新评论