服务器之家

服务器之家 > 正文

Nginx实现if多重判断配置方法示例

时间:2019-10-27 14:37     来源/作者:Nginx配置网

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; 
}
标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
返回顶部