今天与一友人,争执nginx的if模块,友人给出的说法是当其中一个if判断匹配,执行了if模块里的内容后,就不再执行下一个if模块,这大大颠覆了我的认知,c,java python都不是这么来的,奈何没找到ngx的if模块的文档,这里简单做了一个测试,恩,还是和正常的程序处理逻辑是相同的
#ngx location cfg
server
{
listen 80;
server_name test.vip.com;
location /{
set $a 1;
set $b 2;
set $flag 1;
if ( $a = "1"){
set $flag 1$flag;
}
if ( $b = "2" ){
set $flag 1$flag;
}
return 200 $flag;
}
}
#for test
curl -x "10.199.134.223:80" "http://test.vip.com/"
111
事实证明,还是遵循正常的变成语言逻辑的;