Gecodeerde paden behouden in een bestaande NGINX HTTP-doorstuurroute
Gebruik request_uri wanneer het doorstuurcontract het oorspronkelijke pad en de query vereist, en behoud de bestaande bestemmingsvalidatie.
Een route die is opgebouwd uit $uri kan een ander pad sturen dan het pad dat de client opgaf. Voor http://service.example/files/a%2Fb?view=raw maakt de geëscaleerde schuine streep deel uit van die oorspronkelijke spelling.
| Variabele | Weergave |
|---|---|
| $uri | De huidige genormaliseerde URI, die kan veranderen tijdens interne verwerking |
| $request_uri | De oorspronkelijke aanvraag-URI, inclusief de queryargumenten |
In een bestaande HTTP-doorstuurproxyopstelling die de bestemmingsautoriteit al selecteert en valideert, kunnen het oorspronkelijke pad en de query behouden blijven met:
proxy_pass http://$http_host$request_uri;$http_host levert de gekozen Host-headerautoriteit in deze opstelling. Behoud de clientbeperkingen van de listener, het bestemmingsbeleid en de configuratie voor naamresolutie.
Het vervangen van $uri$is_args$args door deze expressie verandert de verzonden weergave; de vorige gebruikt het genormaliseerde pad en de huidige argumenten. Kies volgens het contract van het eindpunt, vooral wanneer geëscaleerde scheidingstekens van belang zijn of een handtekening het oorspronkelijke doel dekt. Bewust het pad herschrijven heeft een andere vereiste.
Dit geldt voor de zichtbare HTTP-aanvraag. Een HTTPS CONNECT-tunnel draagt de latere aanvraag binnen TLS en vereist zijn eigen ondersteunde afhandeling.