Nginx条件判断语法

时间:2025-05-14 08:34:27

条件判断

Nginx语法不支持if条件的逻辑与&&逻辑或|| 运算 ,而且不支持if的嵌套语法。需要借助变量来实现嵌套语法或多条件判断

if else

location / {
    set $flag 0;
    if ($host = ) {
        proxy_pass ;
        set $flag 1;
    }
    
    # 没有匹配到,跳转到默认页面
    if ($flag = 0) {
        proxy_pass ;
    }
}

多条件判断

location / {
	set $flag 0;
	if ($uri ~ ^/static/$){
	 	set $flag "${flag}1";
	}
	if ($scheme= http){
	 	set $flag "${flag}1";
	}
	if ($flag = "011"){
	 	echo "";
	}
}

参考资料:

  1. Nginx wiki
  2. Pitfalls and Common Mistakes
  3. Nginx 陷阱和常见错误