تکنولوژی

LiteSpeed یا Nginx برای هاست وردپرسی؟

اگر بعد از مهاجرت از Apache سایت کند شده یا htaccess کار نمی‌کند، این راهنما کمک می‌کند تصمیم بگیرید LiteSpeed یا Nginx برای بار واقعی شما مناسب‌تر است.

تکنولوژی

سایت را از هاست اشتراکی Apache به یک سرور جدید منتقل کرده‌اید، همه‌چیز بالا آمده، اما TTFB روی ۸۰۰ میلی‌ثانیه مانده و صفحه‌های وردپرس کندتر از قبل باز می‌شوند. یا برعکس: روی Nginx نشسته‌اید و فایل .htaccess قدیمی‌تان که با آن ریدایرکت‌ها و قواعد امنیتی را مدیریت می‌کردید، بی‌صدا نادیده گرفته می‌شود. این دو نشانه، دقیقاً همان جایی است که تصمیم بین LiteSpeed و Nginx معنا پیدا می‌کند.

قبل از هر چیز، یک تفکیک ساده که خیلی‌ها قاطی می‌کنند: LiteSpeed دو چیز متفاوت است. یکی نسخه Enterprise که مستقیم روی سرور نصب می‌شود و جای Apache را می‌گیرد، و یکی LSWS با ماژول lsapi که PHP را از طریق lsphp اجرا می‌کند. اگر روی هاست اشتراکی هستید، احتمالاً فقط مصرف‌کننده‌اش هستید؛ اگر سرور اختصاصی دارید، باید خودتان تصمیم بگیرید کدام را بالا بیاورید.

کش داخلی LiteSpeed دقیقاً چه کاری می‌کند

بزرگ‌ترین تفاوت عملی، LSCache است. این کش در سطح خود وب‌سرور اجرا می‌شود، نه در PHP. یعنی وقتی یک بازدیدکننده صفحه‌ای را درخواست می‌کند که قبلاً کش شده، درخواست هرگز به PHP-FPM و MySQL نمی‌رسد. روی یک وردپرس معمولی با افزونه WooCommerce، همین یک لایه می‌تواند TTFB را از ۷۰۰ میلی‌ثانیه به زیر ۱۰۰ میلی‌ثانیه برساند، به شرطی که کش درست پیکربندی شده باشد.

نکته‌ای که در عمل خیلی‌ها را غافلگیر می‌کند: LSCache فقط وقتی کار می‌کند که افزونه litespeed-cache نصب و فعال باشد و سرور هم واقعاً LiteSpeed باشد. اگر روی Nginx باشید و این افزونه را نصب کنید، هیچ خطایی نمی‌بینید، فقط هیچ کشی هم اتفاق نمی‌افتد. علامتش این است که در تب کش افزونه، عدد Hit Rate صفر می‌ماند در حالی که ترافیک دارد می‌آید.

پیکربندی درست کش در LiteSpeed

در تنظیمات افزونه، بخش Cache، گزینه‌های زیر را جدی بگیرید:

  • Cache Logged-in Users: برای سایت‌های فروشگاهی معمولاً باید خاموش بماند، وگرنه سبد خرید کاربران قاطی می‌شود.
  • Cache Mobile: اگر قالب ریسپانسیو دارید و نسخه موبایل جدا ندارید، روشن کردنش فقط حافظه هدر می‌دهد.
  • Default Public Cache TTL: مقدار ۳۶۰۰ ثانیه نقطه شروع معقولی است؛ برای سایت خبری پربازدید می‌توانید پایین‌تر بیاورید.

در سطح سرور، اگر دسترسی root دارید، در فایل /usr/local/lsws/conf/httpd_config.conf می‌توانید مقدار cacheStoragePath را به یک دیسک NVMe جدا منتقل کنید. این کار وقتی سایت شما بیش از ۵۰ هزار بازدید روزانه دارد، تفاوت محسوسی در زمان پاسخ کش می‌سازد.

سازگاری با htaccess؛ نقطه‌ای که Nginx کم می‌آورد

Nginx فایل .htaccess را نمی‌خواند. این یک محدودیت طراحی است، نه باگ. اگر سایت وردپرسی شما روی Apache بوده و ریدایرکت‌های 301، قواعد RewriteRule، یا محدودیت‌های IP را در htaccess نوشته‌اید، بعد از مهاجرت به Nginx همه‌شان از کار می‌افتند. نشانه‌اش هم واضح است: لینک‌های قدیمی ۴۰۴ می‌دهند، یا صفحه‌ای که باید فقط به IP خاصی باز شود، برای همه باز است.

راه‌حل استاندارد، ترجمه دستی این قواعد به بلوک location در Nginx است. مثلاً این خط Apache:

RewriteRule ^blog/(.*)$ /articles/$1 [R=301,L]

در Nginx می‌شود:

location ~ ^/blog/(.*)$ {
    return 301 /articles/$1;
}

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

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

در چه باری تفاوت واقعاً دیده می‌شود

روی سایت‌های کم‌ترافیک، تفاوت LiteSpeed و Nginx در حد نویز است. هر دو زیر ۲۰۰ میلی‌ثانیه پاسخ می‌دهند و کاربر چیزی حس نمی‌کند. تفاوت از جایی شروع می‌شود که همزمانی درخواست‌ها بالا می‌رود.

سناریوLiteSpeedNginx
سایت وردپرسی با کش صفحهکش داخلی، بدون نیاز به لایه اضافهنیاز به FastCGI Cache یا Redis
سازگاری htaccessکاملندارد
مصرف حافظه در بار بالاکمتر، چون کش در سرور استبسته به پیکربندی worker
انعطاف در reverse proxyمحدودتربسیار بالا
پشتیبانی از HTTP/3دارددارد

در بارهای سنگین، مثلاً وقتی ۲۰۰۰ درخواست همزمان دارید، Nginx به خاطر معماری event-driven و مصرف حافظه پایین‌ترش معمولاً پایدارتر می‌ماند. اما اگر کش صفحه درست تنظیم شده باشد، اکثر آن ۲۰۰۰ درخواست هرگز به PHP نمی‌رسند و تفاوت عملی محو می‌شود. برای درک بهتر اینکه چرا معماری سرور روی سرعت پاسخ اثر می‌گذارد، راهنمای HTTP/3 و مالتی‌پلکسینگ را ببینید.

یک هزینه که کمتر گفته می‌شود

LiteSpeed رایگان نیست. نسخه Enterprise لایسنس دارد و اگر روی سرور فیزیکی خودتان نصب می‌کنید، باید هزینه‌اش را حساب کنید. Nginx رایگان است و همین باعث می‌شود در پروژه‌های با بودجه محدود انتخاب پیش‌فرض باشد. اگر سایت شما روزی ۵۰۰ بازدید دارد، پرداخت لایسنس LiteSpeed توجیه اقتصادی ندارد؛ همان Nginx با یک کش ساده کافی است.

کدام را انتخاب کنم

اگر سایت وردپرسی دارید، htaccess سنگین دارید، و نمی‌خواهید وقت بگذارید روی ترجمه قواعد، LiteSpeed را انتخاب کنید. اگر روی زیرساخت خودتان کنترل کامل دارید، از reverse proxy استفاده می‌کنید، یا چند سرویس مختلف را پشت یک وب‌سرور می‌آورید، Nginx انتخاب درست‌تری است. من شخصاً برای پروژه‌های وردپرسی که مشتری خودش مدیریت می‌کند LiteSpeed را ترجیح می‌دهم، چون کمتر کسی را می‌بینم که واقعاً وقت بگذارد و کانفیگ Nginx را درست بنویسد.

اگر تازه دارید سرور انتخاب می‌کنید و مطمئن نیستید کدام معماری برای بار شما مناسب است، سرور ابری این امکان را می‌دهد که بدون تعهد بلندمدت تست کنید و بعد تصمیم بگیرید. برای بررسی مسیر شبکه و DNS قبل از مهاجرت هم ابزارهای شبکه کارتان را راه می‌اندازند.

پرسش‌های پرتکرار

آیا LiteSpeed می‌تواند جای Nginx را در reverse proxy بگیرد؟

تا حدی بله، اما نه با همان انعطاف. LiteSpeed از پروکسی معکوس پشتیبانی می‌کند ولی برای سناریوهای پیچیده مثل load balancing پیشرفته یا مسیریابی بر اساس هدرهای خاص، Nginx گزینه بالغ‌تری است. اگر معماری شما چند لایه دارد، معمولاً Nginx را در لبه نگه می‌دارند و LiteSpeed را فقط برای سرو کردن وردپرس استفاده می‌کنند.

چرا بعد از نصب افزونه LiteSpeed Cache سایت سریع‌تر نشد؟

چون سرور شما LiteSpeed نیست. افزونه فقط وقتی کش می‌سازد که وب‌سرور از LSCache پشتیبانی کند. اگر روی Apache یا Nginx هستید، افزونه بی‌اثر است و باید یا سرور را عوض کنید یا از یک لایه کش دیگر مثل FastCGI Cache استفاده کنید.

آیا Nginx از فایل htaccess پشتیبانی می‌کند؟

نه، و هیچ ماژول رسمی هم برای این کار وجود ندارد. باید قواعد را دستی به بلوک‌های location و rewrite در فایل کانفیگ منتقل کنید. این کار یک‌بار انجام می‌شود ولی اگر قواعد htaccess شما زیاد باشد، چند ساعت وقت می‌برد.

برای سایت فروشگاهی کدام گزینه بهتر است؟

برای ووکامرس، LiteSpeed با کش داخلی‌اش معمولاً نتیجه بهتری می‌دهد چون می‌توانید صفحات محصول و دسته‌بندی را کش کنید بدون اینکه سبد خرید کاربران خراب شود. فقط یادتان باشد کش کاربران لاگین‌شده را خاموش نگه دارید. اگر فروشگاه شما ترافیک بالایی دارد و از CDN استفاده می‌کنید، Nginx هم با پیکربندی درست همان نتیجه را می‌دهد.

پشتیبانی سرورنت

تیم فنی و تحریریه‌ی سرورنت — تخصص در زیرساخت، شبکه و میزبانی وب.

سرور مجازی ایران
اشتراک‌گذاری:

دیدگاه‌ها ۰

هنوز دیدگاهی ثبت نشده؛ اولین نفر باشید!

دیدگاه خود را بنویسید

سرویس مرتبط

سرور مجازی ایران

NVMe در قلب تهران — برای سایت‌ها و اپلیکیشن‌هایی که کاربر ایرانی دارند: سریع‌ترین پینگ، ترافیک داخلی نیم‌بها و تحویل آنی.