관련지식
nginx

nginx 설정에서 사용되는 if 구문엔 프로그래밍 언어에서 흔히 쓰는 && ||와 같은 것이 없습니다. 따라서 특정 URI의 method가 POST로 호출되었을때 무엇인가 해주고 싶을때 아래와 같은 형태는 사용 못합니다.

  1. if ($uri = '특정URI' && $request_method = 'POST') {
  2. }

그런데 중첩 if도 사용할 수 없습니다. 아래와 같은 형태도 사용할 수 없습니다.

  1. if ($uri = '특정URI') {
  2. if ($request_method = 'POST') {
  3. }
  4. }

하지만 이러한 조건은 종종 필요할 수 있습니다. 그럴땐 변수를 이용한 꼼수를 사용할 수 있습니다.

  1. if ($uri = '특정URI') {
  2. set $STEP A;
  3. }
  4. if ($request_method = 'POST') {
  5. set $STEP "${STEP}B";
  6. }
  7. if ($STEP = 'AB') {
  8. ..처리..
  9. }