درک ماژول memcached در Nginx
ماژول ngx_http_memcached_module در Nginx به ما این امکان را میدهد که از سرور مدربان (Memcached) به عنوان یکی از منبعهای کش برای دادهها استفاده کنیم. این شهرت زیاد را در میان توسعهدهندگان وب به خاطر تواناییاش در افزایش سرعت بارگذاری و کاهش بار روی سرورهای اصلی پیدا کرده است. اما برای استفاده مؤثر از این ماژول، نیاز داریم که با پیکربندیهای مختلف آن آشنا شویم.
یکی از تنظیمات مهم در این ماژول memcached_send_timeout است. این تنظیمات زمان خروج از سرور Memcached را که Nginx در حین ارسال درخواست وارد میکند، تعیین میکند. اگر زمان منتظر ماندن بیشتر از مدت معین شده در memcached_send_timeout شود، Nginx ارتباط را قطع خواهد کرد. این واقعا به حفظ کارایی کمک میکند و از معطلیهای غیرضروری جلوگیری میکند.
پیکربندی memcached_send_timeout به صورت پیشفرض ممکن است برای اکثر کاربران کافی باشد، اما در حالات خاصی، مثل زمانی که بار شبکهای شما زیاد است یا درخواستهای متعددی به Memcached ارسال میشود، میتوانید این میزان را افزایش دهید. به طور کلی، زمان پیشفرض 60 ثانیه است که برای اکثر سایتها مناسب است.
حالا بیایید با هم ببینیم چگونه میتوانیم این تنظیم را در فایل پیکربندی Nginx قرار دهیم. برای اینکار، شما باید به فایل پیکربندی Nginx (معمولا در مسیر /etc/nginx/nginx.conf) بروید و تنظیمات مربوط به ماژول Memcached را اضافه کنید.
نمونه کد
location /memcached {
memcached_pass 127.0.0.1:11211;
default_type text/html;
memcached_send_timeout 30s;
}
توضیح کد
در اینجا به طور مرحله به مرحله کد بالا را بررسی میکنیم:
location /memcached
: این خط به Nginx میگوید که هر زمانی که یک درخواست به مسیر /memcached ارسال شد، باید از تنظیمات داخل این بلوک پیروی کند.memcached_pass 127.0.0.1:11211
: این خط تعیین میکند که درخواستها به کدام سرور Memcached ارسال شوند. در اینجا از localhost با پورت 11211 استفاده شده است.default_type text/html
: به Nginx میگوید که نوع محتوای پیشفرض درخواستهای پاسخداده شده، HTML خواهد بود.memcached_send_timeout 30s
: این خط میگوید که اگر Nginx بعد از 30 ثانیه نتواند به سرور Memcached متصل شود، باید اتصال را قطع کند.