NGINX Proxy_Pass는 URL 하위 문자열을 제거합니다.

NGINX Proxy_Pass는 URL 하위 문자열을 제거합니다.

역방향 프록시 역할을 하는 NGINX가 하나 있습니다. URL에서 string_1 하위 문자열을 제거해야 합니다. URL의 나머지 부분은 가변적입니다.

예:

Origin: http://host:port/string_1/string_X/command?xxxxx

Destination: http://internal_host:port/string_X/command?xxxxx

nginx.conf:

location /string_1/   { 

    proxy_pass  http://internal_host:port/$request_uri$query_string;

감사해요,

@pcamacho

답변1

정말 기본적이고 간단합니다. /path/부분을 ​​추가하면 nginx가 s 접두사를 해당 경로로 proxy_pass대체합니다 . 으로 location바꿔야 하므로 다음과 같이 하십시오./string_1//

location /string_1/ {
    proxy_pass  http://internal_host:port/;
}

답변2

Proxy_pass URL을 다시 작성하는 방법을 찾았습니다.

  location  /string_1/   {  

    if ($request_uri ~* "/string_1/(.*)") { 
            proxy_pass  http://internal_host:port/$1;
    }   

  }

문안 인사,

@pcamacho

관련 정보