Как настроить доступ к контейнеризированной среде с помощью Nginx Proxy Manager на Linux
Введение
В этом руководстве вы настроите безопасный и удобный доступ к контейнеризированным сервисам с помощью Nginx Proxy Manager. Этот подход упрощает управление обратным прокси через веб-интерфейс вместо ручной настройки конфигураций. Вы установите Nginx Proxy Manager с использованием Docker, выполните его настройку и опубликуете контейнеризированный сервис через домен.
Предварительные требования
Целевая аудитория: начинающие системные администраторы
Оценочное время: ~30 минут
Цель: к концу руководства у вас будет рабочая конфигурация Nginx Proxy Manager, которая маршрутизирует внешний трафик к контейнеризированному приложению.
Системные требования:
- ОС: Linux-дистрибутив с поддержкой Docker
- Docker: 24.0.6 или новее
- Docker Compose: v2
- Минимум 1 ГБ ОЗУ и 10 ГБ дискового пространства
- Доменное имя, указывающее на IP-адрес вашего сервера
- Открытые порты: 80, 81, 443
- Права sudo
Необходимые знания:
- Базовые навыки работы с командной строкой Linux
- Базовое понимание контейнеров Docker
Шаг 1: Почему Nginx Proxy Manager?
Nginx Proxy Manager - это веб-инструмент для управления конфигурациями обратного прокси Nginx. Он позволяет маршрутизировать трафик к различным сервисам с использованием доменных имен, включать SSL-сертификаты и управлять правилами доступа без ручного редактирования конфигурационных файлов.
Ключевые возможности:
- Веб-интерфейс для управления прокси
- Автоматическое получение SSL через Let's Encrypt
- Контроль доступа и аутентификация
- Простая интеграция с Docker-средами
Результат: вы ознакомились с Nginx Proxy Manager и получили представление как он упрощает публикацию контейнеризированных сервисов.
Шаг 2: Установка Docker и Docker Compose
Установите Docker с помощью команды:
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
Проверьте установку Docker:
docker --version
Проверьте Docker Compose:
docker compose version
Результат: Docker и Docker Compose установлены и готовы к использованию.
Шаг 3: Настройка Nginx Proxy Manager
Создайте директорию проекта:
mkdir ~/npm && cd ~/npm
Создайте файл конфигурации:
nano docker-compose.yml
Добавьте содержимое конфигурации:
version: "3" services: app: image: jc21/nginx-proxy-manager:latest restart: always ports: - "80:80" - "81:81" - "443:443" volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt
Сохраните файл и выйдите.
Запустите сервис:
docker compose up -d
Результат: контейнер Nginx Proxy Manager запущен и прослушивает необходимые порты.
Шаг 4: Доступ к веб-интерфейсу

Откройте браузер и перейдите по адресу: http://<YOUR_IP_ADDRESS>:81
Учетные данные по умолчанию:
- Email:
[email protected] - Пароль:
changeme
Обновите учетные данные при первом входе.
Результат: вы можете управлять Nginx Proxy Manager через веб-интерфейс.
Шаг 5: Развертывание тестового контейнера
Запустите тестовый веб-контейнер:
docker run -d --name test-app -p 8080:80 nginx
Проверьте доступ: http://<YOUR_IP_ADDRESS>:8080
Результат: тестовый контейнер запущен и доступен локально.
Шаг 6: Создание Proxy Host

В интерфейсе Nginx Proxy Manager:
- Нажмите "Proxy Hosts"
- Нажмите "Add Proxy Host"
- Укажите домен:
<YOUR_DOMAIN> - Forward hostname или IP:
localhost - Forward port:
8080 - Включите "Block Common Exploits"
- Сохраните конфигурацию
Результат: трафик с домена маршрутизируется к контейнеру.
Шаг 7: Включение SSL

Отредактируйте proxy host:
- Откройте вкладку SSL
- Выберите Request a new SSL Certificate
- Включите Force SSL
- Включите HTTP/2 Support
- Укажите email и примите условия
- Сохраните изменения
? Примечание: для SSL требуется корректная настройка DNS, указывающая домен на сервер.
Результат: HTTPS включен и защищен валидным сертификатом.
Проверка
Откройте домен: https://<YOUR_DOMAIN>
Ожидаемые результаты:
- Загружается тестовая страница Nginx
- Браузер показывает валидный SSL-сертификат
- Нет предупреждений безопасности
Проверьте контейнеры:
docker ps
Результат: обратный прокси работает корректно и безопасно маршрутизирует трафик.
Откат изменений
Остановите сервисы:
docker compose down
Удалите тестовый контейнер:
docker rm -f test-app
Удалите файлы проекта:
rm -rf ~/npm
⚠️ Внимание: это удалит все конфигурации и SSL-сертификаты.
Результат: система возвращена в исходное состояние.
Устранение неполадок
Проблема: нет доступа к веб-интерфейсу
Решение: убедитесь, что порт 81 открыт и не занят другим сервисом
Проблема: не создается SSL-сертификат
Решение: проверьте DNS-настройки, указывающие на ваш сервер
Проблема: proxy host не работает
Решение: проверьте контейнеры через docker ps и логи через docker logs <CONTAINER_ID>
Результат: типовые проблемы выявлены и устранены.
Заключение и дальнейшие шаги
Вы установили и настроили Nginx Proxy Manager с использованием Docker и опубликовали контейнеризированный сервис через домен и SSL. Это решение обеспечивает простой и масштабируемый способ управления сервисами.
Дальнейшие шаги:
- Добавление новых сервисов с разными доменами
- Настройка списков контроля доступа
- Изучение расширенных настроек прокси и безопасности