پیکربندی Nginx برای مدیریت بهینه درخواست HEAD با proxy_cache_convert_head

nginx proxy cache convert head
09 اردیبهشت 1404

استفاده از ماژول proxy_cache در Nginx


نکته مهمی که باید به آن اشاره کنم این است که Nginx یکی از معروف‌ترین و پرکاربردترین وب سرورهاست و تنظیمات آن به شدت تأثیرگذار بر عملکرد و سرعت وب‌سایت‌ها است. با توجه به اینکه الگوی بعدی در اینجا درباره ماژول ngx_http_proxy_module و گزینه proxy_cache_convert_head صحبت می‌کنیم، در واقع به موضوع کش کردن درخواست‌ها و بهینه‌سازی پاسخ‌ها خواهیم پرداخت. این گزینه کمک می‌کند تا مدیریت بهتری بر روی Cache داشته باشیم.



ماژول ngx_http_proxy_module به ما این امکان را می‌دهد که درخواست‌ها را به یک سرور دیگر پروکسی کنیم و پاسخ‌ها را در یک کش ذخیره کنیم تا بار سرور اصلی کاهش یابد. یکی از قابلیت‌های جالب این ماژول، گزینه proxy_cache_convert_head است که به ما این امکان را می‌دهد تا درخواست‌های HEAD را به روش بهینه‌ای مدیریت کنیم. با استفاده از این قابلیت، Nginx می‌تواند به جای اینکه دوباره به سرور اصلی مراجعه کند، پاسخ را از کش خود برگرداند.



در واقع در بسیاری از موقعیت‌ها، کاربر وقتی که درخواست HEAD ارسال می‌کند، در واقع فقط به دنبال متا دیتا یا اطلاعاتی درباره منبع مورد نظر است. به همین دلیل اگر ما این درخواست را از کش خود برگردانیم، می‌توانیم سرعت پاسخ‌دهی را به طرز چشمگیری افزایش دهیم.



بیایید به چند نمونه کد نگاهی بیندازیم تا بهتر متوجه شویم چطور می‌توانیم این گزینه را در فایل پیکربندی Nginx قرار دهیم و از آن استفاده کنیم. با چند خط کد ساده می‌توانیم شروع کنیم و وب سرور خود را بهینه‌سازی کنیم.



location / {
proxy_pass http://backend;
proxy_cache my_cache;
proxy_cache_convert_head on;
}


توضیح کد



  • location /: این خط مشخص می‌کند که تنظیمات زیر برای مسیر ریشه وب‌سایت اعمال می‌شوند.

  • proxy_pass http://backend;: با این خط، درخواست‌ها به سرور backend هدایت می‌شوند.

  • proxy_cache my_cache;: این گزینه مشخص می‌کند که از کدام کش برای ذخیره‌سازی پاسخ‌ها استفاده می‌کنیم.

  • proxy_cache_convert_head on;: با فعال کردن این گزینه، درخواست‌های HEAD به صورت بهینه‌ای مدیریت می‌شوند و Nginx می‌تواند پاسخ‌ها را از کش برگشت دهد به جای ارسال دوباره به سرور اصلی.


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

؟

چرا باید از کش در Nginx استفاده کنیم؟

؟

proxy_cache_convert_head چه عملی انجام می‌دهد؟

؟

چطور می‌توانم کش را در Nginx فعال کنم؟

؟

آیا می‌توانم کش را برای فقط درخواست‌های خاصی تنظیم کنم؟