2017-10-13 2 views
3

포트 8081 및 샘플 경로에서 수신 대기하는 게시 서버가 있습니다. 전체 URI 쿼리 매개 변수를 노드 서비스로 리디렉션 할 수 있기를 원합니다. 어떻게해야합니까?전달 URI 쿼리 매개 변수 nginx 리버스 프록시

예를 들어 난 후 요청 URL 다음 http://exmaple.com/foo/bar?bla=1http://example.com:8081/foo/bar?bla=1

그것은 매우 간단하고 정직하고 예를 보이는 전달 싶지만 그냥은 어떤 IDE를 작동받을 수없는 이유는 무엇입니까?

location ^~ /foo/bar { 

       rewrite_log on; 
       rewrite ^/foo/bar(.*) /$1 break; 
       proxy_pass http://example.com:8081/foo/bar;     
     } 

답변

2

기본적으로 proxy_pass은 요청 URI (쿼리 문자열 포함)를 변경하지 않습니다. 질문에있는 예제는 proxy_pass 문 (this document 참조) 또는 rewrite...break 문 (this document 참조)에 선택적 URI를 추가하여 업스트림 전에 URI를 변경할 수있는 두 가지 방법 인 을 보여줍니다. 솔루션이 나를 위해 일하지 않았기 때문에

location ^~ /foo/bar { 
    proxy_pass http://example.com:8081; 
} 
+0

그것이 ..., 중 – user4860092

+1

을 POST 요청을 지원합니까 :

당신이 모두를 제거하면

는 URI 간섭받지 상류 그대로 쿼리 문자열로 전송됩니다 POST 요청은 투명하게 전달되어야합니다. 질문 다시 읽기 - POST 요청에 본문이 포함되어 있으므로 URL 인코딩 된 매개 변수를 POST 요청에 포함하는 것은 드문 경우입니다. –

+0

게시물에 관해서는 당신이 맞습니다.이 게시물은 개발 중이며 가까운 장래에 변경 될 것입니다. 먼저 역방향 프록시 isuue를 수정하고 싶습니다. 여기에 있습니다. 언급하지 않았지만 투명해야한다고 생각합니다. 서버에는 tls (https) – user4860092