Запазване на кодирани пътища в съществуващ маршрут за HTTP препращане в NGINX
Използвайте request_uri, когато договорът за препращане изисква оригиналния път и заявка, като запазите съществуващата проверка на дестинацията.
Маршрут, изграден от $uri, може да изпрати различен път от този, който клиентът е предоставил. За http://service.example/files/a%2Fb?view=raw екранираната наклонена черта е част от този оригинален запис.
| Променлива | Представяне |
|---|---|
| $uri | Текущият нормализиран URI, който може да се промени по време на вътрешна обработка |
| $request_uri | Оригиналният URI на заявката, включително нейните аргументи за заявка |
В съществуваща схема за HTTP препращащ прокси сървър, която вече избира и проверява органа на дестинацията, оригиналният път и заявката могат да бъдат запазени с:
proxy_pass http://$http_host$request_uri;$http_host предоставя избрания орган на заглавката Host в тази схема. Запазете клиентските ограничения на слушателя, политиката за дестинация и конфигурацията за разрешаване на имена.
Заместването на $uri$is_args$args с този израз променя изпращаното представяне; предишният използва нормализирания път и текущите аргументи. Избирайте според договора на крайната точка, особено когато екранираните разделители са важни или подпис покрива оригиналната цел. Умишленото пренаписване на пътя има различно изискване.
Това се отнася за видимата HTTP заявка. Тунелът HTTPS CONNECT носи следващата заявка вътре в TLS и изисква собствена поддържана обработка.