Перейти к основному содержанию
Тест-сервис
Обсудить проект
Все материалы
Сайты 1С-Битрикс VPS Ubuntu

Битрикс на VPS: Ubuntu, Docker и Nginx Proxy Manager

Разбираем понятную схему окружения для корпоративного сайта или небольшого магазина на Битрикс: отдельный reverse proxy, контейнеры проекта, постоянные данные, бэкапы и мониторинг.

Сайт на 1С-Битрикс можно установить на VPS вручную: поставить Nginx, PHP, базу данных, настроить виртуальный хост и права. Такой вариант работает, но со временем сервер обрастает конфигами, версии компонентов расходятся, а перенос и обновление превращаются в отдельный проект.

Docker не отменяет администрирование и не ускоряет Битрикс автоматически. Его задача — зафиксировать окружение и разделить сервисы. Если структура проекта описана в Compose, проще поднять тестовую копию, перенести сайт и понять, какие данные нужно резервировать.

Для каких проектов подходит эта схема

Подход удобен для корпоративного сайта, небольшого интернет-магазина, тестового стенда и проекта, который нужно регулярно развивать. Для высоконагруженного магазина, кластера или строгой отказоустойчивости потребуется другая архитектура: отдельная база, балансировка, репликация и управляемое хранилище.

Логическая структура сервера

  • Ubuntu — базовая операционная система;
  • Docker Engine и Compose — запуск сервисов;
  • Nginx Proxy Manager — входящий HTTP/HTTPS, сертификаты и проксирование;
  • отдельный Compose-проект — веб-сервер, PHP и база Битрикс;
  • постоянные каталоги или volumes — база и пользовательские файлы;
  • внешнее хранилище — резервные копии;
  • мониторинг — ресурсы, доступность и срок действия сертификатов.

Шаг 1. Подготовьте Ubuntu

Начните с актуальной LTS-версии Ubuntu, отдельного пользователя для администрирования и входа по SSH-ключу. Обновите пакеты, задайте часовой пояс и включите firewall.

sudo apt update
sudo apt -y upgrade
sudo timedatectl set-timezone Europe/Moscow

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Не публикуйте наружу порт базы данных и административные панели. Доступ к ним лучше ограничить локальной сетью, VPN или доверенными IP.

Шаг 2. Установите Docker из официального репозитория

После установки проверьте Docker Engine и Compose:

docker --version
docker compose version
docker info

Зафиксируйте используемые образы и версии. Тег latest удобен для теста, но бесконтрольное обновление production может неожиданно изменить PHP, базу или reverse proxy.

Шаг 3. Разделите проекты по каталогам

/opt/docker/
├── proxy/
│   ├── compose.yml
│   ├── data/
│   └── letsencrypt/
├── projects/
│   └── example.ru/
│       ├── compose.yml
│       ├── .env
│       ├── www/
│       └── db/
└── backup/
    ├── scripts/
    └── logs/

Не храните исходники, дампы, сертификаты и базу в одном безымянном volume. По структуре должно быть понятно, какие данные переживают пересоздание контейнера и что включается в резервную копию.

Шаг 4. Настройте Nginx Proxy Manager

Reverse proxy удобно вынести в отдельный проект, потому что он обслуживает все домены на сервере. Упрощённый Compose выглядит так:

services:
  npm:
    image: jc21/nginx-proxy-manager:latest
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "127.0.0.1:81:81"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

В примере административный порт доступен только локально. Если панель нужна удалённо, используйте SSH-туннель или VPN. После первого входа смените учётные данные и сохраните резервную копию данных proxy и сертификатов.

Шаг 5. Создайте общую Docker-сеть

Прокси и сайт могут общаться через внешнюю сеть без публикации внутренних портов сайта наружу:

docker network create proxy

Эту сеть подключают к Nginx Proxy Manager и веб-контейнеру проекта. В Proxy Host указывается имя контейнера и его внутренний порт, а не публичный IP сервера.

Шаг 6. Подготовьте окружение Битрикс

Для проекта можно использовать проверенную контейнерную основу и адаптировать её под нужные версии PHP, Nginx и базы. До запуска проверьте расширения PHP, лимиты памяти, загрузку файлов, почту, cron и права на запись.

Секреты базы и API не следует записывать в Compose-файл и репозиторий. Используйте закрытый .env с ограниченными правами или отдельный механизм секретов.

Шаг 7. Учитывайте особенности Битрикс

  • агенты, выполняемые по cron, не должны параллельно запускаться в нескольких контейнерах;
  • почта должна уходить через настроенный SMTP с контролем ошибок;
  • права на /upload/ и кеш задаются согласованно, а не через 777;
  • временные каталоги и сессии должны переживать только то время, которое действительно требуется;
  • после изменения PHP проверяется панель «Проверка системы» и реальные сценарии сайта.

Шаг 8. Настройте резервное копирование

Копировать сам контейнер бессмысленно: он восстанавливается из образа. Сохранять нужно дамп базы, код, /upload/, Compose-файлы, закрытую конфигурацию и данные reverse proxy. Хотя бы одна копия должна находиться вне VPS.

Регулярно разворачивайте копию в изолированном окружении. Подробный состав и проверка описаны в статье «Бэкапы сайта на Битрикс: практический чек-лист».

Шаг 9. Добавьте мониторинг

Контролируйте доступность сайта, коды 5xx, время ответа, CPU, память, swap, свободное место, состояние контейнеров, базу, срок действия SSL и результат резервного копирования. Логи ограничивайте ротацией, иначе исправный контейнер со временем заполнит диск.

Что проверить перед публикацией

  • домен открывается по HTTPS и перенаправляет HTTP;
  • панели, база и служебные порты недоступны из интернета;
  • формы, письма, CRM и cron работают;
  • robots.txt и sitemap.xml соответствуют рабочему домену;
  • после перезапуска сервера контейнеры поднимаются автоматически;
  • резервная копия уходит во внешнее хранилище;
  • есть инструкция обновления и восстановления.

Главный вывод: Docker полезен не сам по себе, а как способ сделать окружение Битрикс повторяемым и понятным. Если нужно подготовить production-сервер, настроить proxy, безопасность, резервирование и мониторинг, это входит в услугу настройки VPS для сайта на Битрикс.