NGINXproxyManager
Установка Nginx Proxy Manager в Docker
‘’‘Nginx Proxy Manager (NPM)’’’ — удобная графическая оболочка для управления реверсивным прокси-сервером Nginx.
С его помощью можно:
- публиковать внутренние веб-сервисы в Интернет;
- направлять разные домены и поддомены на разные серверы;
- автоматически получать SSL-сертификаты Let’s Encrypt;
- управлять HTTPS через веб-интерфейс;
- создавать перенаправления;
- ограничивать доступ к отдельным сервисам.
В результате схема работы выглядит примерно так:
INTERNET
│
HTTP / HTTPS
80 / 443
│
▼
┌─────────────────────┐
│ Nginx Proxy Manager │
│ │
│ Docker │
└──────────┬──────────┘
│
┌───────────┼───────────┐
│ │ │
▼ ▼ ▼
Web #1 Web #2 Web #3
192.168.1.x 192.168.1.x 192.168.1.x
Требования
Для установки потребуется сервер или виртуальная машина с Linux.
В данной инструкции предполагается использование Debian/Ubuntu.
Также необходимо убедиться, что порты:
- ‘’‘80/TCP’’’ — HTTP;
- ‘’‘443/TCP’’’ — HTTPS;
- ‘’‘81/TCP’’’ — панель управления Nginx Proxy Manager
не заняты другими сервисами.
Проверить используемые порты можно командой:
ss -tulpn
Обновление системы
Сначала обновляем список пакетов и установленные пакеты:
apt update && apt upgrade -y
При необходимости устанавливаем дополнительные сетевые утилиты:
apt install net-tools curl ca-certificates -y
Установка Docker
Для актуальных установок рекомендуется использовать официальный репозиторий Docker.
Добавляем ключ репозитория:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
Добавляем репозиторий Docker:
cat > /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
Обновляем список пакетов:
apt update
Устанавливаем Docker Engine и Docker Compose:
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Проверяем версию Docker:
docker --version
И Docker Compose:
docker compose version
Проверка Docker
Проверяем состояние службы:
systemctl status docker
Если Docker не запущен:
systemctl start docker
Добавляем Docker в автозагрузку:
systemctl enable docker
Для дополнительной проверки можно запустить тестовый контейнер:
docker run --rm hello-world
Если установка выполнена правильно, Docker загрузит тестовый образ и выведет сообщение об успешном запуске.
Установка Nginx Proxy Manager
Создадим отдельный каталог для Nginx Proxy Manager:
mkdir -p /opt/nginx-proxy-manager
cd /opt/nginx-proxy-manager
Создаём файл Docker Compose:
nano docker-compose.yml
Добавляем следующую конфигурацию:
services:
app:
image: 'jc21/nginx-proxy-manager:2.15.1'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Сохраняем файл:
Ctrl + O Enter Ctrl + X
В данной конфигурации используется встроенная база данных SQLite, поэтому отдельный контейнер MariaDB для обычной установки не требуется.
Запуск Nginx Proxy Manager
Запускаем контейнеры:
docker compose up -d
Проверяем их состояние:
docker compose ps
Также можно посмотреть непосредственно запущенные Docker-контейнеры:
docker ps
Nginx Proxy Manager должен отображаться со статусом:
Up
Первый запуск может занять некоторое время.
При необходимости посмотреть журнал запуска:
docker compose logs -f
Выход из просмотра журнала:
Ctrl + C
Вход в панель управления
Открываем браузер и переходим по адресу:
http://IP_СЕРВЕРА:81
Например:
http://192.168.1.20:81
После первого входа необходимо настроить учётную запись администратора согласно интерфейсу текущей версии Nginx Proxy Manager.
‘’‘Обязательно используйте собственный надёжный пароль администратора.’’’
Назначение портов
| Порт | Протокол | Назначение
80 TCP Входящие HTTP-запросы - 443 TCP Входящие HTTPS-запросы - 81 TCP Web-интерфейс администратора } Создание первого Proxy HostПосле входа в Nginx Proxy Manager открываем: Hosts → Proxy Hosts → Add Proxy Host Указываем:
|
|---|