Preservar caminhos codificados numa rota de encaminhamento HTTP do NGINX existente
Use request_uri quando o contrato de encaminhamento exigir o caminho e a consulta originais, mantendo a validação de destino existente.
Uma rota construída a partir de $uri pode enviar um caminho diferente do que o cliente forneceu. Para http://service.example/files/a%2Fb?view=raw, a barra escapada faz parte dessa grafia original.
| Variável | Representação |
|---|---|
| $uri | O URI normalizado atual, que pode mudar durante o processamento interno |
| $request_uri | O URI original do pedido, incluindo os seus argumentos de consulta |
Numa disposição existente de proxy de encaminhamento HTTP que já seleciona e valida a autoridade de destino, o caminho e a consulta originais podem ser preservados com:
proxy_pass http://$http_host$request_uri;$http_host fornece a autoridade do cabeçalho Host selecionada nesta disposição. Mantenha as restrições de cliente do ouvinte, a política de destino e a configuração de resolução de nomes.
Substituir $uri$is_args$args por esta expressão altera a representação enviada; a anterior usa o caminho normalizado e os argumentos atuais. Escolha conforme o contrato do ponto final, sobretudo quando os delimitadores escapados importam ou uma assinatura cobre o alvo original. A reescrita deliberada do caminho tem um requisito diferente.
Isto aplica-se ao pedido HTTP visível. Um túnel HTTPS CONNECT transporta o pedido posterior dentro de TLS e requer o seu próprio tratamento suportado.