Перейти к основному содержанию
Тест-сервис
Обсудить проект
← все материалы
Сайты 08 июля 2026 12 мин

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

Проверенная схема старта Битрикс на VPS: подготовка Ubuntu, установка Docker Engine и Compose, безопасный Nginx Proxy Manager и настройка env-docker.

Контейнеры помогают отделить операционную систему сервера от окружения проекта: PHP, веб‑сервер, база и вспомогательные сервисы описываются явно и обновляются управляемо. Но Docker сам по себе не делает сервер безопасным, а готовый compose‑файл нельзя без проверки переносить в production.

Ниже — последовательность для поддерживаемого старта: подготовить VPS, установить Docker из официального репозитория, поднять Nginx Proxy Manager с закрытой админкой и только затем настраивать контейнерное окружение Битрикс.

Актуальность инструкции Команды и ссылки проверены 10 июля 2026 года по документации Docker, Nginx Proxy Manager и репозиторию bitrix-tools/env-docker. Перед повторением сверяйте поддерживаемые версии Ubuntu и текущий релиз образов.
Серия
Запуск Bitrix на VPS
5материалов
  1. 01VPS + Ubuntu + Dockerбаза окружения для проекта
  2. 02Nginx Proxy Manager и SSLдомен, HTTPS, проксирование
  3. 03Бэкапы Bitrixфайлы, база, загруженные материалы и проверка восстановления
  4. 04Мониторинг и логичто смотреть до аварии
  5. 05Перенос проектамиграция без простоя и паники

Когда такая схема подходит

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

Подходит новый сайт, тестовый стенд, перенос, подготовка к поддержке
Требует отдельного проекта кластер, высокая нагрузка, несколько серверов, жёсткие SLA

Схема окружения

  1. VPS принимает только необходимый внешний трафик.
  2. Nginx Proxy Manager завершает TLS и направляет домены в нужные контейнеры.
  3. Битрикс работает в отдельном compose‑проекте.
  4. База, upload и конфигурация резервируются раздельно.
  5. Изменения сначала проверяются на тестовой копии.

Шаг 1. Проверка и подготовка VPS

Используйте поддерживаемую 64‑битную Ubuntu. До установки проверьте версию ОС, архитектуру, свободное место и память. Обновление пакетов может потребовать перезагрузки, поэтому на действующем сервере заранее согласуйте техническое окно.

bash
cat /etc/os-release
uname -m
df -h
free -h

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

На внешнем firewall провайдера оставьте доступными только SSH с доверенных адресов, HTTP 80 и HTTPS 443. Базы данных, PHP‑FPM, Redis, Memcached и панели управления не должны слушать публичный интерфейс.

Docker и UFW Опубликованные Docker‑порты могут обходить обычные правила UFW. Не считайте включённый UFW достаточной защитой: ограничивайте публикацию портов, используйте firewall провайдера и при необходимости правила цепочки DOCKER-USER. Проверяйте доступность портов с внешнего хоста.

Шаг 2. Установка Docker Engine и Compose

Следующий блок повторяет официальный способ установки для Ubuntu через apt‑репозиторий Docker. Пакеты docker-ce, CLI, containerd, Buildx и Compose устанавливаются явно.

bash
sudo apt update
sudo apt install -y ca-certificates curl git
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

cat <<EOF | sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin

sudo systemctl status docker --no-pager
sudo docker run --rm hello-world
sudo docker version
sudo docker compose version

Не добавляйте пользователя в группу docker автоматически: доступ к Docker daemon практически равен root‑доступу. Если такой режим нужен команде, оформите его как отдельное осознанное решение и ограничьте SSH‑доступ.

Шаг 3. Nginx Proxy Manager

Nginx Proxy Manager можно вынести в отдельный compose‑проект. Не используйте плавающий тег latest на production: зафиксируйте проверенную версию и обновляйте её после чтения release notes. В официальном quick setup на дату проверки указан образ 2.15.0.

yaml
services:
  app:
    image: "jc21/nginx-proxy-manager:2.15.0"
    restart: unless-stopped
    environment:
      TZ: "Europe/Moscow"
    ports:
      - "80:80"
      - "443:443"
      - "127.0.0.1:81:81"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Привязка 127.0.0.1:81:81 не публикует админку в интернет. Для первого входа откройте SSH‑туннель и перейдите на http://127.0.0.1:8181 на своём компьютере:

bash
ssh -L 8181:127.0.0.1:81 user@example-server

После запуска выполните docker compose ps, смените начальные учётные данные и сохраните резервную копию каталогов data и letsencrypt. Для обновления сначала прочитайте release notes, сделайте копию данных, затем выполните docker compose pull и docker compose up -d.

Шаг 4. Контейнерная основа Битрикс

Репозиторий bitrix-tools/env-docker поддерживается командой внутри 1С‑Битрикс, но его README прямо описывает проект как девелоперский и предупреждает: для боевого режима нужны дополнительные настройки безопасности хоста, контейнеров и сайта.

bash
git clone https://github.com/bitrix-tools/env-docker.git bitrix-env
cd bitrix-env

# Зафиксируйте ревизию, с которой начинаете работу:
git rev-parse HEAD

# До запуска проверьте итоговую конфигурацию:
docker compose config

До docker compose up -d замените шаблонные пароли MySQL/PostgreSQL, задайте пароль Redis при его использовании, смените ключ Push‑сервера, проверьте часовой пояс, версии PHP и открываемые порты. Не храните секреты в публичном Git‑репозитории.

Nginx Proxy Manager должен достигать веб‑контейнера Битрикс через явно спроектированную общую Docker‑сеть или через ограниченный backend‑порт хоста. Не публикуйте наружу MySQL, Redis, Memcached и PHP‑FPM. Схему сети и имена контейнеров фиксируйте в документации проекта.

Шаг 5. Проверка перед публикацией

  • снаружи доступны только ожидаемые порты, обычно 22 с allowlist, 80 и 443;
  • порт 81 Nginx Proxy Manager не открывается из интернета;
  • все шаблонные пароли и секреты заменены;
  • docker compose config и docker compose ps не показывают ошибок;
  • домен открывается по HTTPS без цепочки лишних редиректов;
  • формы создают письмо и заявку в CRM;
  • база, upload, конфигурация и сертификаты попадают в резервную копию;
  • восстановление проверено на отдельном стенде;
  • cron и агенты Битрикс выполняются;
  • логи контейнеров подключены к мониторингу.

Первичные источники

Итог

Хороший старт — не «поставить Битрикс за вечер», а получить окружение, которое можно обновить, проверить и восстановить. Фиксируйте версии, не публикуйте внутренние сервисы, храните проверяемые резервные копии и документируйте сетевую схему.

Нужен разбор окружения? Пришлите схему контейнеров, список открытых портов и описание резервного копирования. Проверим риски и составим план исправлений без необоснованной перестройки.