VPS для интернет-магазина
Интернет-магазин — это деньги, корзины и персональные данные. Здесь важны скорость страниц, стабильность в пиковые часы и защищённое соединение для оплаты. Shared-хостинг такое тянет плохо. Разберём, как собрать надёжный магазин на VPS.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Почему магазину нужен именно VPS
На виртуальном хостинге вы делите ресурсы с сотнями сайтов: чужой всплеск нагрузки роняет скорость вашего каталога. Для магазина это прямые потери — по данным индустрии, каждая лишняя секунда загрузки снижает конверсию.
VPS даёт выделенные ресурсы, root-доступ и полный контроль над стеком. На AMD EPYC + NVMe у MAATRIX тяжёлые запросы каталога и фильтры по товарам отрабатывают быстро даже при росте базы.
Отдельный аргумент для российских магазинов — оплата зарубежного сервера из России. Когда иностранные провайдеры не принимают карты РФ, MAATRIX даёт зарубежные локации (UK, США и РФ) с оплатой картой РФ, по СБП, криптой или токеном MAAT. Вы получаете сервер за пределами РФ и при этом платите привычным способом.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для интернет-магазинаКонфигурация под нагрузку
Ориентир на старт: 2 ядра, 4 ГБ RAM, NVMe. Этого хватает небольшому и среднему магазину. Растёте — добавляете ресурсы без переезда.
Как понять, что пора масштабироваться? Следите за тремя метриками: средняя загрузка CPU в пиковые часы (выше 70% стабильно — мало ядер), процент использования RAM с учётом кэшей и время отклика страниц каталога. Если товарных позиций тысячи и активно работают фильтры по атрибутам, закладывайте память с запасом — фильтрация упирается в базу и её кэш.
Ставим полный стек:
apt update && apt install -y nginx mysql-server \
php-fpm php-mysql php-gd php-curl php-mbstring php-xml \
php-bcmath php-intl php-zip redis-server
systemctl enable --now nginx mysql php8.2-fpm redis-server
Кэш: OPcache и Redis
OPcache кэширует скомпилированный PHP-байткод — страницы формируются заметно быстрее. Включаем в /etc/php/8.2/fpm/conf.d/10-opcache.ini:
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=1
opcache.revalidate_freq=60
Redis держит сессии и кэш каталога в памяти, разгружая MySQL. Для проверки:
redis-cli ping # должно вернуть PONG
systemctl restart php8.2-fpm
Эффект от двух уровней кэша ощущается сразу: OPcache убирает повторную компиляцию PHP при каждом запросе, а Redis снимает с базы однотипные запросы карточек и меню каталога. Вместе они дают магазину запас прочности в часы акций, когда посетителей в разы больше обычного. Большинство популярных движков (WooCommerce, OpenCart, Битрикс) умеют работать с Redis из коробки или через модуль — достаточно указать хост localhost и порт 6379.
MySQL под каталог
Каталог и заказы — это база, поэтому настройте буфер InnoDB. В /etc/mysql/mysql.conf.d/mysqld.cnf:
[mysqld]
innodb_buffer_pool_size = 2G
innodb_flush_log_at_trx_commit = 2
max_connections = 200
slow_query_log = 1
systemctl restart mysql
Буфер держите в пределах ~50–60% RAM. Медленные запросы из slow_query_log потом закроете индексами.
Обязательный HTTPS для оплаты
Без HTTPS платёжные шлюзы просто не подключатся, а браузеры пометят сайт «Не защищён». Выпускаем SSL бесплатно:
apt install -y certbot python3-certbot-nginx
certbot --nginx -d shop.ru -d www.shop.ru
Добавьте в nginx современные заголовки безопасности:
add_header Strict-Transport-Security "max-age=31536000" always;
add_header X-Content-Type-Options nosniff;
Бэкапы — вопрос выживания магазина
Потерять базу заказов — катастрофа. У MAATRIX ежедневные бэкапы включены на уровне платформы, но своя копия базы лишней не бывает:
mysqldump -u root -p --single-transaction shop \
| gzip > /root/backup/shop-$(date +%F).sql.gz
Повесьте это в cron на ночь и храните последние 7–14 копий. При сбое восстановление занимает минуты.
Правило проверенного бэкапа: копия, которую ни разу не разворачивали, — это ещё не бэкап, а надежда. Раз в месяц разверните дамп на тестовой базе и убедитесь, что импорт проходит без ошибок и данные на месте. Отдельно храните копию файлов магазина (загруженные изображения товаров, конфиги) — потеря медиа-каталога так же болезненна, как потеря базы.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для интернет-магазинаОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Какой конфигурации VPS хватит магазину на старте?
2 ядра, 4 ГБ RAM и NVMe-диск — комфортный минимум для небольшого и среднего магазина. Ресурсы масштабируются по мере роста трафика и каталога.
Нужен ли Redis обычному магазину?
Он не обязателен, но заметно ускоряет работу: хранит сессии и кэш в памяти, снимая часть нагрузки с MySQL. На среднем и крупном каталоге эффект ощутимый.
Насколько важен HTTPS для магазина?
Критично. Без SSL не подключить платёжные шлюзы, а браузеры отпугнут покупателей предупреждением о незащищённом соединении.