فعال کردن کش فایل (file cache) در سرور (Nginx و Apache) برای افزایش سرعت



یکی از مهم‌ترین عوامل در سرعت بارگذاری یک وب‌سایت، سرعت دسترسی به فایل‌های استاتیک (مانند تصاویر، CSS و JavaScript) از روی هارد دیسک سرور است. هرچقدر هم که سرور شما قوی باشد، خواندن مکرر فایل‌ها از روی دیسک یک فرآیند کند و هزینه‌بر است. اینجاست که “کش فایل در سمت سرور” وارد می‌شود.

این تکنیک به وب‌سرور شما اجازه می‌دهد تا اطلاعات مربوط به فایل‌های پرکاربرد را مستقیما در حافظه RAM سرور ذخیره کند. در نتیجه، برای درخواست‌های بعدی، به جای مراجعه به دیسک، اطلاعات به سرعت از RAM خوانده می‌شود که این امر تاخیر (latency) را به شدت کاهش داده و عملکرد سایت را بهبود می‌بخشد. برای پیاده‌سازی این تکنیک‌ها، شما به دسترسی کامل به تنظیمات سرور نیاز دارید که با خرید سرور مجازی این امکان برای شما فراهم می‌شود.

 

روش اول: فعال‌سازی Open File Cache در Nginx

در وب‌سرور Nginx، این قابلیت از طریق دستورالعمل open_file_cache پیاده‌سازی می‌شود. این دستور به Nginx می‌گوید که اطلاعات مربوط به فایل‌ها (مانند وجود فایل، حجم و دسترسی‌ها) و همچنین خود فایل‌های باز را در حافظه کش کند.

 

چگونه Open File Cache را فعال کنیم؟

  1. فایل اصلی پیکربندی Nginx را با یک ویرایشگر متن باز کنید:
    sudo nano /etc/nginx/nginx.conf
  2. کد زیر را در بلاک http { ... } قرار دهید:
    open_file_cache max=20000 inactive=20s;
    open_file_cache_valid 30s;
    open_file_cache_min_uses 2;
    open_file_cache_errors on;

توضیح کامل پارامترها

 

  • open_file_cache max=20000 inactive=20s;
    • max=20000: حداکثر تعداد فایل‌هایی که اطلاعاتشان در کش ذخیره می‌شود. اگر تعداد فایل‌های استاتیک شما زیاد است، می‌توانید این عدد را افزایش دهید.
    • inactive=20s: اگر یک فایل به مدت ۲۰ ثانیه استفاده نشود، اطلاعات آن از کش حذف می‌شود.
  • open_file_cache_valid 30s;هر ۳۰ ثانیه یک بار، Nginx بررسی می‌کند که آیا اطلاعات کش شده در مورد یک فایل (مانند حجم یا تاریخ ویرایش) هنوز معتبر است یا خیر.
  • open_file_cache_min_uses 2;یک فایل باید حداقل ۲ بار در بازه زمانی `inactive` (یعنی ۲۰ ثانیه) درخواست شود تا اطلاعات آن در کش باقی بماند. این کار از پر شدن کش با فایل‌های کم‌کاربرد جلوگیری می‌کند.
  • open_file_cache_errors on;این گزینه باعث می‌شود که خطاهای مربوط به پیدا نشدن یک فایل (مانند خطای 404) نیز کش شوند. این کار از تلاش مکرر برای پیدا کردن فایل‌های ناموجود جلوگیری می‌کند.

پس از ذخیره تغییرات، حتما کانفیگ Nginx را تست کرده و سپس سرویس را ری‌استارت کنید:

sudo nginx -t
sudo systemctl restart nginx

برای سرورهایی با ترافیک بالا که در اروپا میزبانی می‌شوند، سرور مجازی فنلاند به دلیل زیرساخت شبکه قوی، یک انتخاب مناسب برای پیاده‌سازی این نوع بهینه‌سازی‌هاست.

 

روش دوم: فعال‌سازی کش فایل در آپاچی (Apache)

در وب‌سرور آپاچی، این قابلیت از طریق ماژولی به نام `mod_file_cache` فراهم می‌شود. این ماژول به شما اجازه می‌دهد تا لیستی از فایل‌های پرکاربرد را مشخص کنید تا در هنگام راه‌اندازی آپاچی، به صورت کامل در حافظه RAM بارگذاری شوند.

 

چگونه mod_file_cache را فعال کنیم?

  1. ابتدا، مطمئن شوید که ماژول فعال است (در اوبونتو/دبیان):
    sudo a2enmod file_cache
  2. فایل پیکربندی اصلی آپاچی (apache2.conf) یا فایل Virtual Host سایت خود را باز کنید:
    sudo nano /etc/apache2/apache2.conf
  3. از دستور CacheFile برای مشخص کردن فایل‌هایی که می‌خواهید در حافظه کش شوند، استفاده کنید:
    <IfModule mod_file_cache.c>
        # کش کردن فایل‌های مهم CSS و JavaScript
        CacheFile /var/www/html/assets/css/main.css
        CacheFile /var/www/html/assets/js/app.js
    
        # کش کردن فایل‌های تصویری پرکاربرد مانند لوگو
        CacheFile /var/www/html/assets/images/logo.png
    </IfModule>

پس از ذخیره تغییرات، سرویس آپاچی را ری‌استارت کنید:

sudo systemctl restart apache2

 

این روش به خصوص برای سایت‌هایی با تعداد محدودی فایل استاتیک پرتکرار، مانند لوگو یا فایل‌های CSS اصلی، کارایی بالایی دارد. برای میزبانی سایت‌هایی که نیاز به بهینه‌سازی‌های دقیق دارند، سرور مجازی آلمان به دلیل کیفیت بالای سخت‌افزار و شبکه، یک گزینه محبوب است.