저는 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 ;
}
}