기존 NGINX HTTP 전달 라우트에서 인코딩된 경로 보존하기
전달 계약이 원래 경로와 쿼리를 필요로 할 때 request_uri를 사용하고, 기존 대상 검증은 그대로 유지하십시오.
$uri 로 만든 라우트는 클라이언트가 제공한 경로와 다른 경로를 보낼 수 있습니다. http://service.example/files/a%2Fb?view=raw 의 경우 이스케이프된 슬래시는 원래 표기의 일부입니다.
| 변수 | 표현 |
|---|---|
| $uri | 현재 정규화된 URI로, 내부 처리 중에 변경될 수 있습니다 |
| $request_uri | 쿼리 인수를 포함한 원래 요청 URI |
대상 권한을 이미 선택하고 검증하는 기존 HTTP 전달 프록시 구성에서는 원래 경로와 쿼리를 다음과 같이 보존할 수 있습니다.
proxy_pass http://$http_host$request_uri;$http_host 이 구성에서 선택된 Host 헤더 권한을 제공합니다. 리스너의 클라이언트 제한, 대상 정책, 이름 확인 구성을 유지하십시오.
$uri$is_args$args 를 이 표현식으로 바꾸면 전송되는 표현이 달라집니다. 이전 표현식은 정규화된 경로와 현재 인수를 사용합니다. 엔드포인트 계약에 따라 선택하십시오. 특히 이스케이프된 구분자가 중요하거나 서명이 원래 대상을 포함할 때 그렇습니다. 의도적인 경로 재작성에는 다른 요구 사항이 있습니다.
이는 가시적인 HTTP 요청에 적용됩니다. HTTPS CONNECT 터널은 이후 요청을 TLS 내부에서 전달하며 자체적인 지원 처리가 필요합니다.