Panatilihin ang mga Naka-encode na Path sa Umiiral na Ruta ng Pagpapasa ng HTTP ng NGINX
Gamitin ang request_uri kapag kailangan ng kontrata ng pagpapasa ang orihinal na path at query, habang pinapanatili ang umiiral na pagpapatunay ng destinasyon.
Ang rutang binuo mula sa $uri ay maaaring magpadala ng ibang path kaysa sa ibinigay ng kliyente. Para sa http://service.example/files/a%2Fb?view=raw, ang naka-escape na slash ay bahagi ng orihinal na pagbaybay na iyon.
| Variable | Representasyon |
|---|---|
| $uri | Ang kasalukuyang na-normalize na URI, na maaaring magbago habang pinoproseso sa loob |
| $request_uri | Ang orihinal na URI ng kahilingan, kasama ang mga argumento ng query nito |
Sa umiiral na kaayusan ng proxy sa pagpapasa ng HTTP na pumipili at nagpapatunay na ng awtoridad ng destinasyon, ang orihinal na path at query ay mapapanatili gamit ang:
proxy_pass http://$http_host$request_uri;$http_host nagbibigay ng napiling awtoridad ng header ng Host sa kaayusang ito. Panatilihin ang mga paghihigpit ng kliyente ng tagapakinig, patakaran sa destinasyon at configuración ng resolusyon ng pangalan.
Ang pagpapalit ng $uri$is_args$args ng ekspresyong ito ay nagbabago ng representasyong ipinapadala; ang nauna ay gumagamit ng na-normalize na path at kasalukuyang mga argumento. Pumili ayon sa kontrata ng endpoint, lalo na kapag mahalaga ang mga naka-escape na delimiter o may pirma na sumasaklaw sa orihinal na target. Ang sinadyang muling pagsulat ng path ay may ibang pangangailangan.
Nalalapat ito sa nakikitang kahilingan ng HTTP. Ang tunnel ng HTTPS CONNECT ay nagdadala ng susunod na kahilingan sa loob ng TLS at nangangailangan ng sarili nitong sinusuportahang paghawak.