استفاده از گزینه proxy_ignore_headers در NGINX

nginx proxy ignore headers
04 مرداد 1404

درک گزینه 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 که معمولا برای زمان‌های انقضای کش استفاده می‌شود.


سوالات متداول

؟

چطور می‌توانم هدرهای خاصی را در NGINX نادیده بگیرم؟

؟

آیا نادیده گرفتن هدرهای خاص می‌تواند بر عملکرد وب‌سایت من تاثیر بگذارد؟

؟

چه زمانی باید از proxy_ignore_headers استفاده کنم؟