Як налаштувати доступ до контейнеризованого середовища за допомогою 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. Це забезпечує простий і масштабований спосіб керування сервісами.
Подальші кроки:
- Додавання нових сервісів з різними доменами
- Налаштування списків контролю доступу
- Вивчення розширених налаштувань проксі та безпеки