Una route costruita da $uri può inviare un percorso diverso da quello fornito dal client. Per http://service.example/files/a%2Fb?view=raw, la barra con escape fa parte di quella grafia originale.

VariabileRappresentazione
$uriL'URI normalizzato corrente, che può cambiare durante l'elaborazione interna
$request_uriL'URI originale della richiesta, inclusi i suoi argomenti di query

In una configurazione esistente di proxy di inoltro HTTP che già seleziona e convalida l'autorità di destinazione, il percorso e la query originali possono essere conservati con:

proxy_pass http://$http_host$request_uri;

$http_host fornisce l'autorità dell'intestazione Host selezionata in questa configurazione. Mantieni le restrizioni client del listener, la politica di destinazione e la configurazione di risoluzione dei nomi.

Sostituire $uri$is_args$args con questa espressione cambia la rappresentazione inviata; la precedente usa il percorso normalizzato e gli argomenti correnti. Scegli in base al contratto dell'endpoint, soprattutto quando i delimitatori con escape sono importanti o una firma copre il target originale. La riscrittura deliberata del percorso ha un requisito diverso.

Questo vale per la richiesta HTTP visibile. Un tunnel HTTPS CONNECT trasporta la richiesta successiva all'interno di TLS e richiede una propria gestione supportata.

Articoli correlati