Proxypass를 사용한 nginx 위치 정규식

Proxypass를 사용한 nginx 위치 정규식

저는 nginx를 처음 접하는 초보라서 뻔한 내용을 묻는다면 미리 양해 부탁드립니다.

내가 원하는 것은 다음 형식으로 내 nginx 서버에 도착하는 다른 서버로 요청을 프록시하는 것입니다.

http://mysite/locationA/results?-variablerandomtexthere-test=true

이를 시도하는 방법은 다음과 같습니다.

  location ~* ^/locationA/results\?(.*)test=true$ {
allow 127.0.0.1;
deny all ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass   http://myserver.org/ ;
proxy_redirect off;
}

위의 예는 작동하지 않으며 인터넷 검색을 통해 Proxy_pass에서 정규식을 사용할 수 없다는 것을 알았습니다.

이를 달성하는 다른 방법이 있습니까?

답변1

나는 다음을 수행하여 이를 달성하는 방법을 알아냈습니다.

 location / {

 if ($arg_test ~ "true") {
    set $gotoserver 1;
    }
if ($uri ~* "(queries|results)") {
   set $gotoserver  "${gotoserver}1" ;
    }
if ($gotoserver = 11) {
proxy_pass http://myserver.org ;
    }
}

관련 정보