دیتابیس و جستوجوی محصولات
فیلترها و جستوجوی محصول بیشترین فشار را روی MySQL یا MariaDB میآورند و ایندکس درست معمولاً بیشتر از رم اضافه اثر دارد. اگر فروشگاه فعلی کند است، بهینهسازی دیتابیس سرور را ببینید.
هاست فروشگاهی باید سبد خرید و پرداخت را در روزهای کمپین و حراج هم بدون خطا پاسخ دهد. این صفحه برای فروشگاههایی است که با اپنکارت، پرستاشاپ، لاراول یا کد اختصاصی ساخته شدهاند. اگر فروشگاه شما با وردپرس و ووکامرس کار میکند، مستقیم به هاست ووکامرس بروید که برای همان پلتفرم تنظیم شده است.
برای انتخاب هاست مناسب فروشگاه اینترنتی، تعداد سفارش همزمان در ساعت اوج را ملاک بگیرید. صفحه سبد خرید، حساب کاربری و پرداخت برای هر مشتری جداگانه ساخته میشوند و کش صفحه روی آنها کار نمیکند. اعداد جدول نقطه شروع پیشنهادی هستند و مشخصات پلن آماده را نشان نمیدهند.
| اندازه فروشگاه | CPU | RAM | فضا | قیمت |
|---|---|---|---|---|
| فروشگاه تازهکار؛ تا چند صد محصول | ۲ هسته | ۲ تا ۳ گیگابایت | ۱۰ تا ۲۰ گیگابایت | استعلام قیمت |
| فروشگاه در حال رشد؛ چند هزار محصول و سفارش روزانه منظم | ۳ تا ۴ هسته | ۴ تا ۶ گیگابایت | ۲۰ تا ۵۰ گیگابایت | استعلام قیمت |
| فروشگاه پرترافیک یا کمپینهای بزرگ | ۴ هسته و بیشتر | ۸ گیگابایت و بیشتر | متناسب با تصاویر و دیتابیس | استعلام قیمت |
فیلترها و جستوجوی محصول بیشترین فشار را روی MySQL یا MariaDB میآورند و ایندکس درست معمولاً بیشتر از رم اضافه اثر دارد. اگر فروشگاه فعلی کند است، بهینهسازی دیتابیس سرور را ببینید.
هر درخواست پرداخت یک فرایند PHP-FPM یا LSAPI را اشغال میکند. اگر سقف این فرایندها پایین باشد، در ساعت اوج کمپین خطای 503 میبینید، حتی وقتی CPU آزاد است.
حجم تصاویر محصول معمولاً سریعتر از بقیه بخشهای فروشگاه زیاد میشود. فضای رشد را از ابتدا در نظر بگیرید و بکاپ را روی همان هاست حساب نکنید، چون نسخه پشتیبان باید جای دیگری باشد.
هاست فروشگاهی را باید با ساعت پرفروش سنجید. فروشگاهی که در روز عادی سریع باز میشود، ممکن است در اولین حراج خطا بدهد. تفاوت فروشگاه با سایت معرفی در صفحههایی است که برای هر مشتری جداگانه ساخته میشوند و در دیتابیسی که با هر فیلتر و سفارش درگیر میشود. این راهنما برای صاحب فروشگاه یا توسعهدهندهای است که فروشگاه را با اپنکارت، پرستاشاپ، لاراول یا کد اختصاصی ساخته و میخواهد پیش از خرید یا ارتقای هاست بداند چه چیزی را بسنجد.
در سایت معرفی، بیشتر صفحهها یک بار ساخته میشوند و از کش به همه بازدیدکنندهها میرسند. در فروشگاه، سبد خرید، حساب کاربری و پرداخت برای هر مشتری از نو ساخته میشوند و هر کدام تا پایان پاسخ یک فرایند PHP-FPM یا LSAPI را اشغال میکنند. اگر پاسخ درگاه پرداخت چند ثانیه طول بکشد، آن فرایند هم همان مدت آزاد نمیشود. به همین دلیل تعداد سفارش و کاربر همزمان معیار دقیقتری از تعداد بازدید روزانه است.
گلوگاه بعدی دیتابیس است. فیلتر قیمت، جستوجوی محصول و صفحه دستهبندیهای بزرگ کوئریهای سنگینی روی MySQL یا MariaDB اجرا میکنند و بدون ایندکس مناسب، رم بیشتر اثر کمی دارد. OPcache زمان اجرای کد PHP را کم میکند و Redis، اگر در پلن فعال باشد، نتیجه کوئریهای تکراری را در حافظه نگه میدارد. اگر فروشگاه با وجود منابع کافی کند است، علت معمولاً در کوئریهاست و بهینهسازی دیتابیس سرور برای همین کار است.
کمپین تبلیغاتی ترافیک را در مدت کوتاهی بالا میبرد و سقف فرایندهای همزمان درست در همان ساعتها پر میشود. چند روز پیش از کمپین، این کارها را انجام دهید:
تصاویر بزرگ محصول هم در روز کمپین بار زیادی روی هاست میگذارند. اگر تصاویر پیش از آپلود فشرده شوند و هدرهای کش برای فایلهای ایستا تنظیم شده باشد، حجم هر صفحه کمتر میشود. فروشگاهی که بهطور منظم در ساعات اوج به سقف منابع میرسد، با ارتقای موقت فقط زمان میخرد و باید رفتن به سرور فروشگاهی را برنامهریزی کند.
بکاپی که فقط روی همان هاست است، اگر حساب هک یا حذف شود همراه فروشگاه از دست میرود. یک نسخه را جای دیگری نگه دارید و بازگردانی را دستکم یک بار آزمایش کنید. برای برنامه منظمتر، بکاپ و بازیابی بحران را ببینید. ارتقای نسخه PHP بدون بررسی سازگاری افزونهها و قالب هم دردسر رایجی است. در اپنکارت، ماژولی که با نسخه جدید سازگار نیست ممکن است صفحه پرداخت را از کار بیندازد و تا اولین سفارش ناموفق کسی متوجه نشود.
در پرستاشاپ، درونریزی چند هزار محصول با memory_limit و max_execution_time پایین وسط کار متوقف میشود و کاتالوگ ناقص میماند. در فروشگاههای لاراولی، کرونجابی که Scheduler را اجرا میکند گاهی بعد از انتقال هاست فراموش میشود. آن وقت کارهای صف، مثل ارسال ایمیل سفارش، بیصدا متوقف میشوند. پوشه storage اپنکارت هم اگر داخل public_html بماند، از بیرون در دسترس است و باید به بیرون از آن منتقل شود.
برخی درگاههای پرداخت و سرویسهای پیامک داخلی درخواست از IP خارج از ایران را محدود میکنند. اگر فروشگاه روی سرور خارج باشد، ممکن است بازگشت از درگاه یا پیامک تأیید سفارش خطا بدهد. پیش از انتخاب لوکیشن، فهرست سرویسهایی را که فروشگاه به آنها وصل میشود بنویسید و شرایط هر کدام را بررسی کنید. برای مشتریان داخلی، هاست ایران تأخیر کمتری هم دارد.
منابع لازم برای ساعت اوج، لوکیشن و کنترلپنل پایه قیمت هستند. نیاز به SSH، Composer یا Redis دامنه پلنهای مناسب را محدودتر میکند. اگر فروشگاه را از هاست دیگری منتقل میکنید، حجم تصاویر و دیتابیس و بازه زمانی مجاز برای جابهجایی هم در برنامه اثر دارد، چون سفارشهایی که حین انتقال ثبت میشوند نباید از دست بروند. این جابهجایی را میتوانید به مهاجرت سرور و هاست بسپارید. برای استعلام، پلتفرم، تعداد محصولات، سفارش روزانه و برنامه کمپینهای پیش رو را بفرستید.
پیش از تغییر نسخه PHP یا نصب ماژول پرداخت تازه، یک سفارش آزمایشی کامل ثبت کنید و بازگشت از درگاه پرداخت را ببینید.
| معیار | هاست اشتراکی معمولی | هاست فروشگاهی | سرور فروشگاهی (VPS) |
|---|---|---|---|
| مناسب برای | سایت معرفی یا فروشگاه خیلی کوچک | بیشتر فروشگاههای کوچک و متوسط | فروشگاه پرترافیک یا چند فروشگاه کنار هم |
| منابع | مشترک، با سقف پایین فرایند | سهم بیشتر برای درخواستهای همزمان | اختصاصی و قابل ارتقا |
| دسترسی و تنظیمات | فقط کنترلپنل | کنترلپنل؛ SSH و Redis بسته به پلن | دسترسی root و کنترل کامل |
| نگهداری فنی سرور | با میزبان | با میزبان | با شما یا سرویس مدیریت سرور |
سرور فروشگاهی معمولاً همان سرور مجازی یا اختصاصی است که فقط برای فروشگاه راهاندازی میشود. اگر به این مرحله رسیدهاید، سرور مجازی ایران و برای نگهداری آن مدیریت سرور لینوکس را ببینید.
اپنکارت سبک است، اما افزونهها و قالبهایش به نسخه PHP حساساند.
درونریزی محصولات و ماژولهای پرداخت به تنظیمات PHP بیشتری نیاز دارند.
فروشگاه لاراولی به دسترسیهایی بیشتر از آپلود فایل نیاز دارد.
فروشگاه وردپرسی نیازهای خودش را دارد، مثل جدولهای بزرگ Action Scheduler و دادههای autoload.
پلن مناسب فروشگاه در اوج فروش هم پاسخ میدهد و اگر مشکلی رخ دهد، بکاپ و راه بازگشت دارد. قیمت پلن بهتنها این را نشان نمیدهد. برای مخاطب داخلی، سرور ایران با درگاههای پرداخت و سرویسهای پیامک داخلی سازگارتر است.
برخی درگاههای پرداخت و سرویسهای پیامک داخلی درخواست از IP خارج از ایران را محدود میکنند. لوکیشن را با این وابستگیها بسنجید.
بپرسید با عبور از سقف منابع چه اتفاقی میافتد و آیا پیش از حراج ارتقای موقت ممکن است.
بکاپ کجا و با چه فاصلهای نگهداری میشود و بازگردانی را چطور باید درخواست کرد؟ برای برنامه بکاپ مستقل، بکاپ و بازیابی بحران را ببینید.
درباره SSL، بهروزرسانی و محدودیت ورود به پنل مدیریت فروشگاه بپرسید. انتقال فروشگاه فعلی را هم میتوانید به مهاجرت سرور و هاست بسپارید.
هاست فروشگاهی هاستی است که منابع و تنظیماتش برای فروشگاه اینترنتی انتخاب شده است: سهم بیشتری از پردازنده و رم برای درخواستهای همزمان، دیتابیس پاسخگو برای جستوجوی محصولات و SSL برای پرداخت. فناوری آن همان هاست لینوکس است و تفاوت در اندازه و اولویت منابع است.
هاست ووکامرس. اگر دنبال هاست فروشگاهی وردپرس هستید، هاست ووکامرس برای نیازهای همان پلتفرم تنظیم میشود و این صفحه برای اپنکارت، پرستاشاپ، لاراول و فروشگاههای اختصاصی است.
برای شروع، حدود ۲ هسته پردازنده و ۲ تا ۳ گیگابایت رم معمولاً کافی است. معیار اصلی تعداد سفارش و کاربر همزمان در اوج فروش است و تعداد محصولات اهمیت کمتری دارد. جدول بالای صفحه نقطه شروع هر اندازه فروشگاه را نشان میدهد.
برای فروشگاه تازهکار با سفارش کم، بله. اگر کمپین تبلیغاتی یا حراج دارید، پلن ارزان با سقف فرایند پایین درست در پرفروشترین ساعت خطا میدهد، پس ارتقای موقت را پیش از کمپین هماهنگ کنید.
وقتی در ساعات اوج بهطور منظم به سقف منابع میرسید، به صف همیشهفعال یا سرویسهایی مثل Elasticsearch نیاز دارید یا چند فروشگاه را کنار هم اجرا میکنید. انتقال را طوری برنامهریزی کنید که سفارشهای ثبتشده در حین جابهجایی از دست نروند.
قیمت به منابع، لوکیشن و کنترلپنل بستگی دارد و بهصورت استعلامی اعلام میشود. برای خرید هاست فروشگاهی، پلتفرم، تعداد محصولات، سفارش روزانه و لوکیشن مورد نظر را در تلگرام بفرستید.
پلتفرم فروشگاه، تعداد محصولات، سفارش روزانه و برنامه کمپینهای پیش رو را بنویسید تا کارشناس کانفیگ سرور منابع مناسب و قیمت بهروز را اعلام کند.