Trasa zbudowana z $uri może wysłać inną ścieżkę niż ta podana przez klienta. W przypadku http://service.example/files/a%2Fb?view=raw znak ukośnika z escape jest częścią tego oryginalnego zapisu.

ZmiennaReprezentacja
$uriBieżący znormalizowany URI, który może się zmienić podczas przetwarzania wewnętrznego
$request_uriOryginalny URI żądania, wraz z jego argumentami zapytania

W istniejącym układzie serwera proxy przekazującego HTTP, który już wybiera i waliduje autorytet celu, oryginalną ścieżkę i zapytanie można zachować za pomocą:

proxy_pass http://$http_host$request_uri;

$http_host dostarcza wybrany autorytet nagłówka Host w tym układzie. Zachowaj ograniczenia klienta odbiornika, politykę celu i konfigurację rozwiązywania nazw.

Zastąpienie $uri$is_args$args tym wyrażeniem zmienia wysyłaną reprezentację; poprzednie używa znormalizowanej ścieżki i bieżących argumentów. Wybieraj zgodnie z kontraktem punktu końcowego, zwłaszcza gdy znaczenie mają znaki rozdzielające z escape lub podpis obejmuje oryginalny cel. Zamierzone przepisanie ścieżki ma inne wymaganie.

Dotyczy to widocznego żądania HTTP. Tunel HTTPS CONNECT przenosi późniejsze żądanie wewnątrz TLS i wymaga własnej obsługi.

Powiązane artykuły