حفظ مسیرهای کدگذاریشده در مسیر موجود ارسال 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 حمل میکند و به مدیریت پشتیبانیشدهٔ خود نیاز دارد.