NGINXproxyManager

Версия от 21:21, 31 августа 2026; Artem (обсуждение | вклад) (Обновление статьи)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Установка 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-интерфейс администратора

}

Шаблон:Warning

Создание первого Proxy Host

После входа в Nginx Proxy Manager открываем:

Hosts → Proxy Hosts → Add Proxy Host

Указываем:

Параметр Пример

Domain Names

wiki.example.com

-

Scheme

http

-

Forward Hostname / IP

192.168.1.30

-

Forward Port

80

}

После этого Nginx Proxy Manager будет принимать запрос:

https://wiki.example.com

и передавать его внутреннему серверу:

http://192.168.1.30:80

Схематично:

Пользователь
     │
     │ https://wiki.example.com
     ▼
┌─────────────────────┐
│ Nginx Proxy Manager │
│       :443          │
└──────────┬──────────┘
           │
           │ HTTP
           ▼
     192.168.1.30:80
           │
           ▼
       Web-сервис

Получение SSL-сертификата

При создании Proxy Host переходим во вкладку:

SSL

Выбираем:

Request a new SSL Certificate

При необходимости включаем:

  • ‘’‘Force SSL’’’ — принудительное перенаправление HTTP → HTTPS;
  • ‘’‘HTTP/2 Support’’’ — поддержку HTTP/2;
  • ‘’‘HSTS’’’ — только если понимаем последствия его использования.

После сохранения Nginx Proxy Manager автоматически запросит сертификат Let’s Encrypt.

Для стандартной HTTP-проверки Let’s Encrypt домен должен указывать на внешний IP сервера, а TCP-порт ‘’‘80’’’ должен быть доступен извне.

Управление контейнером

Остановить Nginx Proxy Manager

cd /opt/nginx-proxy-manager
docker compose down

Запустить

docker compose up -d

Перезапустить

docker compose restart

Посмотреть журнал

docker compose logs -f

Проверить состояние

docker compose ps

Обновление Nginx Proxy Manager

Перед обновлением рекомендуется сделать резервную копию каталога:

/opt/nginx-proxy-manager

Затем переходим в каталог:

cd /opt/nginx-proxy-manager

Загружаем актуальный Docker-образ:

docker compose pull

Пересоздаём контейнер:

docker compose up -d

После обновления проверяем:

docker compose ps

и журнал:

docker compose logs --tail=100

Резервное копирование

Основные данные установки находятся в каталогах:

/opt/nginx-proxy-manager/data
/opt/nginx-proxy-manager/letsencrypt

Для резервного копирования желательно сохранить весь каталог:

/opt/nginx-proxy-manager/

В нём находятся конфигурация Nginx Proxy Manager, база данных, SSL-сертификаты и файл Docker Compose.

Итог

После установки получаем централизованный reverse proxy:

                    INTERNET
                        │
                 ┌──────┴──────┐
                 │             │
               :80           :443
                 │             │
                 └──────┬──────┘
                        ▼
             ┌─────────────────────┐
             │ Nginx Proxy Manager │
             │       Docker        │
             └──────────┬──────────┘
                        │ LAN
        ┌───────────────┼───────────────┐
        ▼               ▼               ▼
      Wiki            Cloud           Matrix
  192.168.1.x      192.168.1.x     192.168.1.x

Теперь новые внутренние веб-сервисы можно публиковать через HTTPS практически полностью из графического интерфейса Nginx Proxy Manager.