Розгортання 1С-Бітрикс на Selectel
Selectel — один з найстаріших російських хостинг-провайдерів з власними дата-центрами в Санкт-Петербурзі та Москві. Відзначається якісною документацією, передбачуваним ціноутворенням та справді чуйною технічною підтримкою. Для Бітрикс-проектів Selectel пропонує віртуальні сервери (VPS/VDS), виділені сервери, хмарні сервери та об'єктне сховище (S3-сумісне).
Варіанти розміщення на Selectel
| Варіант | Коли підходить |
|---|---|
| Віртуальний сервер (VPS) | Малий та середній трафік, проекти з обмеженим бюджетом |
| Хмарний сервер | Необхідна гнучкість ресурсів, погодинна оплата |
| Виділений сервер | Високий трафік, вимоги до продуктивності |
| Managed Kubernetes | Мікросервісна архітектура, масштабування |
Для більшості Бітрикс-проектів рекомендується хмарний сервер з об'єктним сховищем для файлів та виділеною базою даних (MySQL на окремому сервері або Managed DB).
Створення хмарного сервера
Selectel має зручний CLI (slc) та веб-панель. Через панель:
- Хмара → Сервери → Створити сервер
- Образ: Ubuntu 22.04 LTS
- Конфігурація: від 2 vCPU / 4 GB RAM
- Диск: SSD
local-fast(NVMe) — максимальна швидкість I/O, критично для Бітрикс - Мережа: публічна IP + приватна мережа для підключення до БД
Через CLI:
slc cloud server create \
--name bitrix-web \
--flavor sl1.2.20 \
--image ubuntu-22.04-202312 \
--root-password YOUR_STRONG_PASSWORD \
--network public,private
Стек ПО: nginx + PHP-FPM
# Оновити систему
apt update && apt upgrade -y
# Nginx
apt install -y nginx
# PHP 8.1 (Бітрикс підтримує до 8.2)
add-apt-repository ppa:ondrej/php -y
apt install -y php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd \
php8.1-mbstring php8.1-xml php8.1-zip php8.1-bcmath \
php8.1-intl php8.1-soap php8.1-redis php8.1-opcache php8.1-imagick
Конфігурація nginx для Бітрикс — використовуйте офіційний bitrix-nginx.conf від 1С або напишіть вручну:
server {
listen 443 ssl http2;
server_name example.ru;
root /var/www/bitrix/public_html;
ssl_certificate /etc/letsencrypt/live/example.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.ru/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
client_max_body_size 100m;
client_body_timeout 120s;
# Статика — безпосередня обробка
location ~* \.(css|js|png|jpg|gif|ico|svg|woff2)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
# Закриті папки Бітрикс
location ~ /\.ht { deny all; }
location ~ /bitrix/modules/ { deny all; }
location ~ /bitrix/php_interface/ { deny all; }
location ~ /bitrix/tools/ { deny all; }
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 120;
include fastcgi_params;
}
}
База даних: MySQL на окремому сервері
Selectel не надає Managed MySQL як Яндекс.Хмара — тільки віртуальні та виділені сервери. Отже, є два варіанти:
A. MySQL на окремому хмарному сервері:
# На сервері бази даних
apt install -y mysql-server-8.0
mysql_secure_installation
# Створити базу та користувача
mysql -e "CREATE DATABASE bitrix CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -e "CREATE USER 'bitrix'@'10.0.1.%' IDENTIFIED BY 'PASSWORD';"
mysql -e "GRANT ALL ON bitrix.* TO 'bitrix'@'10.0.1.%';"
B. Managed DB через Selectel (доступна через партнерські сервіси).
Важливі параметри MySQL для Бітрикс (/etc/mysql/mysql.conf.d/mysqld.cnf):
[mysqld]
innodb_buffer_pool_size = 2G
innodb_log_file_size = 512M
innodb_flush_log_at_trx_commit = 2
query_cache_type = 0
max_connections = 300
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
Об'єктне сховище для файлів
Selectel Object Storage сумісне з S3 API, endpoint — s3.storage.selcloud.ru.
# Встановлення s3cmd
apt install -y s3cmd
# Налаштування
s3cmd --configure
# host_base = s3.storage.selcloud.ru
# host_bucket = %(bucket)s.s3.storage.selcloud.ru
# Створити бакет
s3cmd mb s3://bitrix-files
Для монтування /upload/ через s3fs — аналогічно іншим хмарам, з вказанням endpoint Selectel.
Як альтернатива — використовуйте rsync для синхронізації /upload/ між кількома серверами, якщо об'єктне сховище надмірне для вашого проекту.
Redis для кешу та сесій
# Redis на тому ж сервері (малий проект) або на окремому
apt install -y redis-server
# /etc/redis/redis.conf — для внутрішнього використання
bind 10.0.1.5 # Приватна IP веб-сервера
requirepass YOUR_REDIS_PASSWORD
maxmemory 1gb
maxmemory-policy allkeys-lru
SSL-сертифікат через Certbot
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.ru -d www.example.ru
# Автоматичне оновлення
echo "0 3 * * * root certbot renew --quiet" > /etc/cron.d/certbot
Сітьовий екран Selectel
На Selectel групи безпеки (firewall) налаштовуються у панелі або через API. Мінімальні правила:
Вхідні:
80/tcp — 0.0.0.0/0 (HTTP, переспрямування на HTTPS)
443/tcp — 0.0.0.0/0 (HTTPS)
22/tcp — YOUR_OFFICE_IP/32
Між серверами (приватна мережа):
3306/tcp — тільки від веб-сервера
6379/tcp — тільки від веб-сервера
Моніторинг та резервні копії
Резервні копії на Selectel:
- Знімки дисків — через панель або API, за розписанням (потребує настройки скриптом)
- Резервні копії БД через
mysqldumpв cron + завантаження в Object Storage
#!/bin/bash
# /etc/cron.daily/bitrix-backup
BACKUP_DIR="/tmp/db_backup"
DATE=$(date +%Y%m%d_%H%M)
mkdir -p $BACKUP_DIR
mysqldump -h 10.0.1.10 -u bitrix -pPASSWORD bitrix | gzip > "$BACKUP_DIR/db_$DATE.sql.gz"
s3cmd put "$BACKUP_DIR/db_$DATE.sql.gz" s3://bitrix-backups/db/
find $BACKUP_DIR -mtime +1 -delete
Строки розгортання
| Варіант | Склад | Строк |
|---|---|---|
| Один сервер | nginx + PHP + MySQL на одній VM | 1 день |
| Розділена інфраструктура | Веб + окрема БД + Redis | 2–3 дні |
| З Object Storage та моніторингом | + S3, SSL, резервні копії, firewall | 3–5 днів |







