درک گزینه proxy_ignore_headers در NGINX
اگر بخواهیم کمی درباره NGINX صحبت کنیم، باید بگوییم که این وب سرور یکی از بهترین گزینهها برای سرورهای وب و پروکسی معکوس (reverse proxy) است. این وب سرور میتواند درخواستها را از کلاینتها دریافت کند و به سرورهای دیگر فرستاده و پاسخها را به کلاینتها برگرداند. در این میان، ما گزینهای به نام proxy_ignore_headers
داریم که میتواند در شرایط خاصی مفید باشد.
تصور کنید که سروری که شما به آن پروکسی میکنید، هدرهایی ارسال میکند که ممکن است باعث مشکلاتی در کار با کلاینتها شود. مثلا ممکن است سرور مقدار Cache-Control
را به هدرهای پاسخ اضافه کند که باعث شود کلاینت آن را کش کند. این کار معمولا نمیخواهیم و به همین دلیل میتوانیم از proxy_ignore_headers
استفاده کنیم تا این هدرها را نادیده بگیریم.
با استفاده از این گزینه، میتوانیم تعیین کنیم که کدام هدرها باید نادیده گرفته شوند. این کار برای زمانی که میخواهید کنترلی بیشتری بر روی هدرهای پاسخ داشته باشید و آنها را به نیازهای خاص خود تنظیم کنید، بسیار مفید میباشد.
در ادامه، ما یک مثال عملی از تنظیم proxy_ignore_headers
را بررسی خواهیم کرد و توضیحات لازم را در کنار آن ارائه میدهیم.
کد نمونه و توضیحات
location /api {
proxy_pass http://backend_server;
proxy_ignore_headers Cache-Control;
proxy_ignore_headers Expires;
}
توضیحات کد
location /api
این خط مشخص میکند که تنظیمات داخل این بلاک برای درخواستهایی که به آدرس
/api
میروند، اعمال میشود.proxy_pass http://backend_server;
این خط مشخص میکند که پاسخهای درخواستها باید به سرور
backend_server
ارسال شوند.proxy_ignore_headers Cache-Control;
این خط instructs NGINX به نادیده گرفتن هدر
Cache-Control
در پاسخهایی که از سرور پروکسی شده میآیند.proxy_ignore_headers Expires;
این خط همچنین instructs NGINX به نادیده گرفتن هدر
Expires
که معمولا برای زمانهای انقضای کش استفاده میشود.