Պահպանել կոդավորված ուղիները գոյություն ունեցող NGINX HTTP փոխանցման երթուղում
Օգտագործեք 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-ի ներսում և պահանջում է իր սեփական աջակցվող մշակումը։