nginx if 다 중 조건 판단

1063 단어 linux웹 서버
nginx 논리 연산
nginx 설정 에 서 는 if 조건 의 논리 와 & 논리 또는 | 연산 을 지원 하지 않 으 며, if 의 내장 문법 을 지원 하지 않 습 니 다. 그렇지 않 으 면 다음 과 같은 오 류 를 보고 합 니 다: nginx: [emerg] invalid condition.
우 리 는 변수의 방식 으로 간접 적 으로 실현 할 수 있다.
실현 할 문장:
if ($arg_unitid = 42012 && $uri ~/thumb/){
 echo "www.ttlsa.com";
}

이렇게 설정 하면 nginx: [emerg] invalid condition 오류 가 발생 합 니 다.
다음 과 같다.
[root@zhang nginx]# /etc/init.d/nginx reload
nginx: [emerg] invalid location modifier "!~*" in /etc/nginx/nginx.conf:389
nginx: configuration file /etc/nginx/nginx.conf test failed'
………………
[root@zhang nginx]# /usr/sbin/nginx -t
nginx: [emerg] invalid condition "$uri" in /etc/nginx/nginx.conf:365
nginx: configuration file /etc/nginx/nginx.conf test failed

이렇게 실현 할 수 있다. 다음 과 같다.
set $flag 0;
if ($uri ~ ^/thumb/[0-9]+_160.jpg$){
 set $flag "${flag}1";
}
if ($arg_unitid = 42012){
 set $flag "${flag}1";
}
if ($flag = "011"){
 echo "www.ttlsa.com";
}

좋은 웹페이지 즐겨찾기