فروشگاه اینترنتی از سایت معمولی سنگینتر است، چون سبد خرید، حساب کاربری و پرداخت قابل کش نیستند و هر بازدید به PHP و دیتابیس میرسد. برای یک فروشگاه ووکامرس تازهکار، سرور ۲ هسته و ۴ گیگ رم شروع مطمئنی است؛ با رشد سفارشها و محصولات، ۴ هسته و ۸ گیگ رم یا جدا کردن دیتابیس منطقی میشود. اگر مشتریان در ایراناند، سرور ایران سرعت و پایداری درگاه پرداخت را بهتر میکند.
چرا فروشگاه اینترنتی منابع بیشتری لازم دارد؟
یک وبلاگ یا سایت معرفی شرکت تقریباً همیشه صفحات یکسانی به همه نشان میدهد. این صفحات را میتوان یک بار ساخت و در کش نگه داشت؛ بنابراین حتی سرور کوچک هم بازدید زیادی را تحمل میکند. فروشگاه اینترنتی متفاوت است. وقتی کاربر محصولی را به سبد اضافه میکند، وارد حساب کاربری میشود، کد تخفیف وارد میکند یا به درگاه پرداخت میرود، صفحه برای خود او ساخته میشود و نمیتوان آن را از کش تحویل داد.
علاوه بر این، فروشگاهها معمولاً افزونههای زیادی دارند: فیلتر محصولات، محاسبهٔ هزینهٔ ارسال، پیامک، حسابداری و گزارشگیری. هرکدام کوئریهای دیتابیس و پردازش اضافه اضافه میکنند. نتیجه این است که منابع لازم برای یک فروشگاه با همان تعداد بازدید، بیشتر از یک سایت محتوایی است.
عوامل تعیینکنندهٔ منابع
پیش از انتخاب پلن، این چند عامل را برای فروشگاه خودتان تخمین بزنید:
- بازدیدکنندگان همزمان: مهمتر از بازدید روزانه، تعداد کاربرانی است که در شلوغترین لحظه همزمان در سایتاند.
- نسبت کاربران وارد شده: هرچه کاربران بیشتری وارد حساب شوند و خرید کنند، بخش بیشتری از درخواستها غیرقابل کش است.
- تعداد محصولات و تنوعها: فروشگاهی با دهها هزار محصول و تنوع رنگ و سایز، دیتابیس بزرگتر و کوئریهای سنگینتری دارد.
- افزونهها: کیفیت افزونهها از تعدادشان مهمتر است؛ یک افزونهٔ بدنوشته میتواند از ده افزونهٔ سبک سنگینتر باشد.
- کارهای پسزمینه: ارسال ایمیل و پیامک، همگامسازی موجودی با انبار یا حسابداری و تولید فید محصولات.
پیشنهاد عملی بر اساس مرحلهٔ کسبوکار
این اعداد نقطهٔ شروعاند و جایگزین اندازهگیری واقعی نیستند:
- فروشگاه تازهکار (چند صد محصول، بازدید کم تا متوسط): ۲ هسته و ۴ گیگابایت رم. با کش صفحه برای کاربران مهمان و Redis برای کش اشیا، این سرور برای شروع کافی است. سرورهای ۱ گیگ رم برای ووکامرس معمولاً زود به محدودیت میخورند.
- فروشگاه در حال رشد (چند هزار محصول، سفارش روزانهٔ منظم): ۴ هسته و ۸ گیگابایت رم. در این مرحله تنظیم PHP-FPM و دیتابیس اهمیت زیادی پیدا میکند.
- فروشگاه بزرگ (دهها هزار محصول، کمپینهای پرترافیک): ۸ هسته و ۱۶ گیگابایت رم یا جدا کردن دیتابیس روی سرور مستقل. معماری چندسروری در این مرحله انعطاف بیشتری میدهد.
برای فهم دقیقتر رابطهٔ رم و پردازنده با نوع کار، مقالهٔ چقدر رم و CPU لازم دارم؟ را بخوانید. جدول پلنهای سرور ایران با قیمت لحظهای را هم در ادامه میبینید:
| پلن | پردازنده | رم | دیسک | ساعتی (تومان) | ماهانه تقریبی (تومان) | |
|---|---|---|---|---|---|---|
| IR-۱ | ۱ هسته | ۱ گیگابایت | ۱۰ گیگابایت | ۱٬۲۰۰ | ۸۷۶٬۰۰۰ | ساخت |
| IR-۲ | ۲ هسته | ۲ گیگابایت | ۱۵ گیگابایت | ۲٬۱۰۰ | ۱٬۵۳۳٬۰۰۰ | ساخت |
| IR-۳ | ۲ هسته | ۴ گیگابایت | ۲۰ گیگابایت | ۳٬۰۰۰ | ۲٬۱۹۰٬۰۰۰ | ساخت |
| IR-۴ | ۴ هسته | ۴ گیگابایت | ۳۰ گیگابایت | ۴٬۲۰۰ | ۳٬۰۶۶٬۰۰۰ | ساخت |
| IR-۵ | ۴ هسته | ۸ گیگابایت | ۵۰ گیگابایت | ۶٬۵۰۰ | ۴٬۷۴۵٬۰۰۰ | ساخت |
| IR-۶ | ۸ هسته | ۱۶ گیگابایت | ۱۰۰ گیگابایت | ۱۲٬۹۰۰ | ۹٬۴۱۷٬۰۰۰ | ساخت |
قیمتها زنده از سامانهٔ کلودیفای در تاریخ ۱۱ آبان ۱۴۰۵ خوانده شدهاند. ترافیک دانلود جداگانه، هر گیگابایت ۱٬۲۵۰ تومان؛ آپلود رایگان.
دیسک و دیتابیس را دستکم نگیرید
در فروشگاهها، دیتابیس اغلب اولین گلوگاه است. هر صفحهٔ دستهبندی با فیلتر قیمت و ویژگی، کوئریهای پیچیدهای اجرا میکند. دیسک NVMe یا SSD سریع، تفاوت محسوسی در زمان پاسخ این کوئریها ایجاد میکند. همچنین به فضای دیسک توجه کنید: تصاویر محصولات، نسخههای مختلف اندازه که وردپرس میسازد، لاگها و نسخههای پشتیبان بهسرعت فضا را پر میکنند.
یک قاعدهٔ مفید: دستکم دو برابر حجم فعلی سایت، فضای آزاد داشته باشید تا بکاپگیری و بهروزرسانیها با مشکل پر شدن دیسک روبهرو نشوند.
- ۲ هسته و ۴ گیگ رم
- کش صفحه و Redis
- دیتابیس روی همان سرور
- پایش مصرف در ساعات شلوغ
- ۴ هسته و ۸ گیگ رم یا بیشتر
- تنظیم PHP-FPM و دیتابیس
- CDN برای فایلهای ثابت
- جدا کردن دیتابیس در صورت نیاز
سرور ایران یا خارج برای فروشگاه؟
اگر مشتریان شما در ایران هستند، سرور ایران چند مزیت مهم دارد:
- سرعت بیشتر برای کاربران داخلی، چون مسیر شبکه کوتاهتر است.
- پایداری بهتر در زمان اختلال اینترنت بینالملل؛ وقتی ارتباط خارجی مختل میشود، سایت روی سرور ایران همچنان برای کاربران داخلی در دسترس میماند.
- ارتباط مطمئن با درگاههای پرداخت و سرویسهای پیامک ایرانی که برخی از آنها درخواستهای خارج از ایران را محدود میکنند.
سرور خارج برای فروشگاههایی که مشتری خارجی دارند یا به سرویسهای بینالمللی وابستهاند مناسبتر است. مقایسهٔ کامل را در سرور ایران یا خارج؟ ببینید. در کلودیفای، سرور مجازی ایران با صورتحساب ساعتی و پرداخت ریالی در دسترس است.
بهینهسازی پیش از ارتقا
پیش از اینکه پلن بزرگتری بخرید، مطمئن شوید منابع فعلی هدر نمیروند:
- کش صفحه برای کاربران مهمان فعال باشد و صفحات سبد و پرداخت از آن مستثنا شوند.
- Redis یا Memcached برای کش اشیای وردپرس، تعداد کوئریهای تکراری را کم میکند. آموزش آن در نصب و امنسازی Redis آمده است.
- OPcache برای PHP فعال باشد.
- تصاویر محصولات فشرده و در اندازهٔ مناسب باشند.
- WP-Cron را با کرونجاب واقعی سیستم جایگزین کنید تا کارهای زمانبندیشده همزمان با بازدید کاربران اجرا نشوند.
- افزونههای بلااستفاده را حذف کنید، نه فقط غیرفعال.
اگر سایت کند است، پیش از هر تصمیمی عیبیابی گامبهگام کندی سایت را انجام دهید.
آمادگی برای کمپینها و مناسبتها
جمعهٔ سیاه، شب یلدا، نوروز و کمپینهای تخفیف، ترافیکی چند برابر روزهای عادی میآورند. یکی از مزیتهای سرور ابری ساعتی این است که میتوانید چند روز پیش از کمپین منابع را ارتقا دهید و پس از آن به پلن قبلی برگردید. چند نکته:
- پیش از کمپین تست بار انجام دهید؛ ابزارهایی مثل k6 یا ab میتوانند بار همزمان را شبیهسازی کنند.
- فایلهای ثابت را روی CDN ببرید تا سرور اصلی فقط درگیر صفحات پویا شود.
- پیش از هر تغییر بزرگ نسخهٔ پشتیبان بگیرید.
- پایش زنده داشته باشید تا اگر سایت از دسترس خارج شد، فوراً باخبر شوید.
- تست بار
شبیهسازی کاربران همزمان با k6 یا ab.
- ارتقای موقت
چند روز پیش از کمپین منابع را بالا ببرید.
- CDN
فایلهای ثابت را از لبهٔ شبکه تحویل دهید.
- بکاپ
پیش از هر تغییر نسخهٔ پشتیبان بگیرید.
- پایش و بازگشت
در کمپین پایش کنید و پس از آن به پلن قبلی برگردید.
جمعبندی تصمیم
با یک سرور میانه شروع کنید، کش و بهینهسازیها را از روز اول انجام دهید و مصرف واقعی را در ساعات شلوغ بپایید. وقتی CPU بهطور مداوم پر است یا رم کم میآید، ارتقا دهید. در مدل ساعتی، تصمیم اشتباه هزینهٔ زیادی ندارد؛ چون هر زمان میتوانید منابع را تغییر دهید.
امنیت فروشگاه را جدی بگیرید
فروشگاه اینترنتی اطلاعات مشتریان، نشانیها و سوابق سفارش را نگه میدارد و هدف جذابی برای مهاجمان است. گواهی SSL معتبر، بهروز نگهداشتن وردپرس و افزونهها، رمز قوی برای حسابهای مدیریت و محدود کردن دسترسی به صفحهٔ ورود مدیریت، حداقلهایی هستند که نباید فراموش شوند. نسخهٔ پشتیبان روزانه از دیتابیس هم ضروری است؛ چون سفارشهای هر روز دادههایی هستند که با بکاپ هفتگی از دست میروند.
نسخهٔ پشتیبان فروشگاه را چطور بگیریم؟
دادههای فروشگاه هر روز تغییر میکنند: سفارشهای جدید، تغییر موجودی، ثبتنام مشتریان و پیامها. بکاپ هفتگی برای فروشگاه کافی نیست. دستکم یک نسخهٔ روزانه از دیتابیس بگیرید و آن را روی سروری دیگر یا فضای ذخیرهسازی جداگانه نگه دارید. فایلهای آپلودی مثل تصاویر محصولات کمتر تغییر میکنند و بکاپ افزایشی آنها با rsync سریع و کمحجم است. روش کار را در آموزش بکاپ با rsync ببینید.
مهمتر از گرفتن بکاپ، آزمودن آن است. هر چند ماه یک بار، نسخهٔ پشتیبان را روی یک سرور ساعتی آزمایشی بازگردانی کنید و مطمئن شوید فروشگاه کامل بالا میآید. بکاپی که هرگز آزموده نشده، ممکن است درست در روز نیاز خراب از آب درآید.
برای مقایسهٔ هزینهٔ ماهانهٔ پلنها و مراحل انتقال فروشگاه از هاست فعلی، صفحهٔ میزبانی سایت و فروشگاه روی سرور مجازی را ببینید.
سؤالات متداول
برای ووکامرس حداقل چقدر رم لازم است؟
ووکامرس روی ۱ گیگ رم اجرا میشود، اما با چند افزونه و کاربر همزمان بهسرعت به محدودیت میرسد. برای فروشگاه واقعی، ۴ گیگابایت رم شروع مطمئنتری است.
هاست اشتراکی برای فروشگاه کافی نیست؟
برای فروشگاههای خیلی کوچک ممکن است کافی باشد، اما در هاست اشتراکی منابع با سایتهای دیگر تقسیم میشود و کنترلی روی تنظیمات PHP، کش و دیتابیس ندارید. با رشد فروش، سرور مجازی انتخاب پایدارتری است.
آیا دیتابیس را باید روی سرور جدا گذاشت؟
برای فروشگاههای کوچک و متوسط، دیتابیس روی همان سرور کافی است. وقتی دیتابیس بخش بزرگی از منابع را مصرف میکند یا به چند سرور وب نیاز دارید، جدا کردن آن منطقی میشود.
چطور بفهمم زمان ارتقای سرور رسیده است؟
اگر در ساعات شلوغ CPU بهطور مداوم پر است، رم آزاد کم است و Swap مصرف میشود، یا زمان پاسخ صفحات پویا بالا رفته و بهینهسازیها انجام شدهاند، زمان ارتقاست.
از ۱٬۲۰۰ تومان در ساعت · پرداخت ریالی



