Conservar rutas codificadas nunha ruta de reenvío HTTP de NGINX existente
Use request_uri cando o contrato de reenvío precise a ruta e a consulta orixinais, mantendo a validación de destino existente.
Unha ruta construída a partir de $uri pode enviar unha ruta distinta da que proporcionou o cliente. Para http://service.example/files/a%2Fb?view=raw, a barra escapada forma parte desa escritura orixinal.
| Variable | Representación |
|---|---|
| $uri | O URI normalizado actual, que pode cambiar durante o procesamento interno |
| $request_uri | O URI orixinal da solicitude, incluídos os seus argumentos de consulta |
Nunha disposición existente de proxy de reenvío HTTP que xa selecciona e valida a autoridade de destino, a ruta e a consulta orixinais pódense conservar con:
proxy_pass http://$http_host$request_uri;$http_host proporciona a autoridade da cabeceira Host seleccionada nesta disposición. Manteña as restricións de cliente do oínte, a política de destino e a configuración de resolución de nomes.
Substituír $uri$is_args$args por esta expresión cambia a representación enviada; a anterior usa a ruta normalizada e os argumentos actuais. Escolla segundo o contrato do punto final, sobre todo cando os delimitadores escapados importan ou unha sinatura cobre o obxectivo orixinal. A reescritura deliberada da ruta ten un requisito distinto.
Isto aplícase á solicitude HTTP visible. Un túnel HTTPS CONNECT transporta a solicitude posterior dentro de TLS e require o seu propio manexo compatible.