سرور ابری برای Laravel — راهنمای انتخاب و پیکربندی بهینه

بهترین سرور برای Laravel چه ویژگی‌هایی باید داشته باشد؟ راهنمای کامل انتخاب CPU، RAM، تنظیمات PHP-FPM، Redis، Queue Worker، Horizon و Nginx برای اجرای حرفه‌ای Laravel.

نویسنده

تیم فنی زیر ساخت افرادین

دسته‌بندی

Laravel

زمان مطالعه

01 Min read

تاریخ انتشار

25 Jul, 2026

سرور ابری برای Laravel — راهنمای انتخاب و پیکربندی بهینه

اگر با فریم‌ورک Laravel کار می‌کنید، می‌دانید که این فریم‌ورک قدرتمند PHP به یک بستر میزبانی حرفه‌ای و بهینه نیاز دارد. یک VPS ساده ممکن است جواب دهد، اما برای اجرای بهینه—به‌خصوص در محیط Production—باید سرور خود را هوشمندانه انتخاب و تنظیم کنید. در این راهنما، همه چیز را قدم‌به‌قدم توضیح می‌دهیم.

Laravel روی چه سروری اجرا شود؟

پاسخ کوتاه: یک VPS لینوکسی با حداقل ۲ گیگ RAM. اما ماجرا به این سادگی‌ها هم نیست.

Laravel از نسخه ۸ به بعد نیازمندی‌های بیشتری پیدا کرده است. اگر پروژه شما از ویژگی‌های مدرنی مثل Eloquent ORM با روابط پیچیده، Queue Jobs، Broadcasting، و caching استفاده می‌کند—و مطمئناً استفاده می‌کند—باید منابع کافی در اختیار داشته باشید.

پیشنهاد ما: هاست اشتراکی را فراموش کنید. Laravel روی هاست اشتراکی نه تنها کند است، بلکه بسیاری از قابلیت‌های کلیدی—مثل Queue Worker، Horizon، Scheduler و حتی برخی پکیج‌ها—غیرقابل استفاده می‌شوند. VPS تنها انتخاب منطقی است.

چه CPU و RAM برای Laravel لازم است؟

نیاز سخت‌افزاری به عوامل مختلفی بستگی دارد، اما این راهنمای کلی را در نظر بگیرید:

محیطCPURAMفضای ذخیره‌سازی
توسعه (Development)۱-۲ هسته۲ گیگ۲۰ گیگ SSD
Production — پروژه کوچک۲ هسته۴ گیگ۴۰ گیگ NVMe
Production — پروژه متوسط۴ هسته۶-۸ گیگ۶۰ گیگ NVMe
Production — پروژه بزرگ / SaaS۸+ هسته۱۶+ گیگ۱۲۰+ گیگ NVMe

چرا RAM اینقدر مهم است؟ چون PHP-FPM برای هر worker حدود ۵۰-۱۰۰ مگابایت RAM مصرف می‌کند، Redis برای cache به RAM جداگانه نیاز دارد، MySQL/PostgreSQL هم سهم خودش را می‌خواهد، و composer dependencies هم حجم قابل توجهی از RAM را در زمان build اشغال می‌کنند.

قانون طلایی: همیشه ۱ گیگ بیشتر از چیزی که فکر می‌کنید نیاز دارید، انتخاب کنید. Laravel در لحظات اوج ترافیک—مثلاً وقتی چند Queue Job هم‌زمان پردازش می‌شوند—می‌تواند RAM را کاملاً اشغال کند.

تنظیمات PHP-FPM برای Laravel

PHP-FPM قلب تپنده سرور Laravel شماست. تنظیمات پیش‌فرض برای یک سایت ساده خوب است، اما برای Laravel باید آن را بهینه کنید.

فایل www.conf در مسیر /etc/php/8.3/fpm/pool.d/ را با این مقادیر تنظیم کنید:

pm = dynamic
pm.max_children = 20
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6
pm.max_requests = 500

نکات کلیدی:

  • pm.max_children را بر اساس RAM موجود تنظیم کنید. فرمول: (RAM - ۱GB برای سیستم) ÷ ۷۰MB
  • pm.max_requests = 500 از memory leak تدریجی جلوگیری می‌کند—هر worker بعد از ۵۰۰ درخواست ریستارت می‌شود
  • همیشه PHP 8.3 را نصب کنید—نسبت به PHP 8.1 حدود ۳۰٪ سریع‌تر است

Redis — فقط cache نیست

Redis در Laravel فقط برای کش کردن کاربرد ندارد. از Redis استفاده کنید برای:

  • Session Driver: جلسات کاربران در Redis به مراتب سریع‌تر از file driver است
  • Queue Driver: صف‌های Laravel روی Redis سریع و قابل اعتماد هستند—مخصوصاً با Laravel Horizon
  • Cache Driver: کش کردن نتایج کوئری‌ها، partial views و API responses

حداقل ۲۵۶ مگابایت RAM به Redis اختصاص دهید. برای پروژه‌های متوسط، ۵۱۲ مگابایت تا ۱ گیگابایت.

MySQL یا PostgreSQL؟

هر دو عالی کار می‌کنند، اما تفاوت‌هایی دارند:

  • MySQL 8.0: سریع‌تر برای read-heavy applicationها، پشتیبانی گسترده، ابزارهای مدیریتی بیشتر. انتخاب اول اکثر پروژه‌های Laravel
  • PostgreSQL 16: قدرتمندتر برای کوئری‌های پیچیده، JSON operations،全文 جستجو و full-text search. اگر کار تحلیلی انجام می‌دهید، PostgreSQL انتخاب بهتری است

تنظیم innodb_buffer_pool_size (برای MySQL) یا shared_buffers (برای PostgreSQL) را حدود ۷۰٪ از RAM موجود تنظیم کنید.

Queue Worker و Supervisor

بدون Queue Worker، Laravel شما ناقص است. ارسال ایمیل، پردازش فایل، تولید گزارش و همگام‌سازی با APIهای خارجی—همه باید در صف انجام شوند.

از Supervisor برای مدیریت Queue Workerها استفاده کنید:

[program:laravel-worker]
command=php /var/www/html/artisan queue:work --sleep=3 --tries=3 --max-time=3600
numprocs=2
autostart=true
autorestart=true

چند worker نیاز دارید؟ برای یک پروژه معمولی، ۲-۴ worker کافی است. تعداد را بر اساس حجم jobs تنظیم کنید.

Laravel Horizon

اگر از Redis برای صف استفاده می‌کنید، Horizon را حتماً نصب کنید. Horizon یک پنل مدیریتی فوق‌العاده برای مانیتورینگ صف‌ها، workerها و jobهای failed است.

Horizon خودش یک daemon process است که باید با Supervisor مدیریت شود. مصرف RAM اضافی آن حدود ۵۰-۱۰۰ مگابایت است.

Nginx — تنظیمات ضروری

Nginx انتخاب اول برای Laravel است. Apache هم کار می‌کند، اما Nginx سریع‌تر، سبک‌تر و مدرن‌تر است.

تنظیمات کلیدی Nginx برای Laravel:

server {
    listen 80;
    server_name example.com;
    root /var/www/html/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    index index.php;
    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

نکته امنیتی مهم: فقط پوشه public باید از وب قابل دسترس باشد. پوشه‌های storage، vendor و .env هرگز نباید از بیرون دیده شوند.

SSL — چرا و چگونه؟

برای Laravel، SSL فقط یک گزینه نیست—ضرورت است. به این دلایل:

  • لاگین کاربران و فرم‌های ثبت‌نام باید روی HTTPS باشند
  • CSRF Protection لاراول نیاز به HTTPS دارد (در تنظیمات session)
  • مرورگرها سایت‌های HTTP را «ناامن» نشان می‌دهند

از Certbot (Let’s Encrypt) برای دریافت SSL رایگان استفاده کنید. نصب و تنظیم آن روی Ubuntu کمتر از ۵ دقیقه طول می‌کشد.

جمع‌بندی: سرور مناسب Laravel شما

برای یک پروژه استاندارد Laravel—یک SaaS، پنل مدیریت یا API—این پیکربندی پیشنهادی ماست:

  • CPU: ۴ هسته
  • RAM: ۸ گیگابایت
  • ذخیره‌سازی: ۶۰ گیگابایت NVMe SSD
  • سیستم‌عامل: Ubuntu 22.04 LTS
  • PHP: 8.3 با PHP-FPM بهینه‌شده
  • وب سرور: Nginx + SSL رایگان
  • دیتابیس: MySQL 8.0 یا PostgreSQL 16
  • کش و صف: Redis + Horizon + Supervisor

👈 سرور مناسب برای اجرای Laravel را انتخاب کنید


مقالات مرتبط