Установка Nginx Proxy Manager в Docker контейнере

364 прочитали
Обратный прокси Nginx Proxy Manager
Обратный прокси Nginx Proxy Manager

Доброго времени суток! В данной заметке мы научимся поднимать с вами reverse-proxy Nginx Proxy Manager в Docker контейнере и во второй части пройдемся по его возможностям.

Коротко о Nginx Proxy Manager в дальнейшем - NPM, для удобства:


NPM
- это бесплатный обратный прокси (reverse proxy) основанный на Nginx, который имеет удобный и понятный интерфейс для управления.

NPM - используется для проксирования вашего приложения на нужный нам домен либо поддомен. Простыми словами для быстрого и удобного привязывания контейнера к нашему домену или поддомену.

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

Сделать это мы можем двумя разными способами:

  1. По порту - самый простой способ, из минусов данный способ оставляет наши порты снаружи в интернет.
  2. По hostname - более безопасный способ, для работы которого потребуется открыть 3 порта 80, 443 и порт нашего GUI NPM.
    В данном способе остальные порты наших переложений не будут выставлены наружу в интернет.
Варианты проксирования в Nginx Proxy Manager
Варианты проксирования в Nginx Proxy Manager

Помимо проксирования на домены, в веб интерфейсе NPM есть работа с TLS(SSL) сертификатами.
Во
второй части статьи мы рассмотрим несколько способов получения бесплатных SSL сертификатов таких как:

  1. Бесплатный обновляющийся сертификат от Lets Encrypt.
  2. Бесплатный обновляющийся Wildcard сертификат от Lets Encrypt.
  3. Бесплатный сертификат от CloudFlare на 15 лет.

NPM автоматически продлевает SSL сертификаты каждые 3 месяца.

Бесплатные SSL сертификаты для домена в Nginx Proxy Manager
Бесплатные SSL сертификаты для домена в Nginx Proxy Manager
  • В NPM есть возможность специальных правил ACL для предоставления/ограничения доступа к вашим приложениям по ip адресу, пароля или одновременно по ip и паролю.
ACL в Nginx Proxy Manager
ACL в Nginx Proxy Manager

Для установки NPM нам понадобиться:

1. Установленный Docker/Docker-Compose.

2. Сервер с доступом root или sudo.

3. Копипаста команд и 15 минут вашего драгоценного времени.

4. Пробросить порты 443 и 80 на IP адрес сервера с NPM, на вашем маршрутизаторе.

1. Подготовка к установке.

Я буду производить установку на Debian 11 от root.

1. Установим Docker/Docker Compose по данной инструкции.

2. Создаем директорию под NPM:

mkdir -p /app/NPM

3. Назначаем пользователя владельцем этой директории:

chown -R $USER:$USER /app/NPM

2. Конфигурация Docker-compose.yml

1. Переходим в директорию /app/NPM:

cd /app/NPM

2. Создаем в ней наш docker-compose.yml файл:

nano docker-compose.yml

3. Копируем строки ниже, вставляем в наш docker-compose.yml

Так же, на всякий случай ссылки: оф. сайт и Docker Hub

Docker-compose nginx proxy manager
Docker-compose nginx proxy manager

Сохраняем его CTRL+X, Y, ENTER и стартуем контейнер NPM командой:

docker compose up -d

Готово, ждем окончания и после можем перейти уже к настройке NPM.

3. Первоначальная настройка NPM.

1. Переходим в браузер и там открываем нашу панель управления NPM

http://ip.адрес.вашего.сервера:порт
Доброго времени суток! В данной заметке мы научимся поднимать с вами reverse-proxy Nginx Proxy Manager в Docker контейнере и во второй части пройдемся по его возможностям.-7

В моем случае будет выглядеть так, если вы делали копипастой, то у вас будет отличаться только ip вашего сервера:

http://192.168.1.10:43081
Доброго времени суток! В данной заметке мы научимся поднимать с вами reverse-proxy Nginx Proxy Manager в Docker контейнере и во второй части пройдемся по его возможностям.-8

Для входа используем:

  • Email: admin@example.com
  • Password: changeme

2. Далее нам будет предложено указать почту, имя и никнейм, указываем свое:

Доброго времени суток! В данной заметке мы научимся поднимать с вами reverse-proxy Nginx Proxy Manager в Docker контейнере и во второй части пройдемся по его возможностям.-9

3. Далее вводим старый пароль (changeme) и ваш новый, сложный пароль:

Доброго времени суток! В данной заметке мы научимся поднимать с вами reverse-proxy Nginx Proxy Manager в Docker контейнере и во второй части пройдемся по его возможностям.-10

4. Дополнительно необходимо на вашем маршрутизаторе пробросить порты 443 и 80 на адрес сервера с NPM.

(Разбирать данный этап не буду, т.к. на разных роутерах это делается в разных местах, но плюс минус одинаково).

Порт 443 будет использоваться для Reverse Proxy, а порт 80 для продления сертификатов Let's Encrypt.

Вывод

Поздравляю, в данной, первой части заметок посвященных NPM, мы с вами научились разворачивать Nginx Proxy Manager на своем сервере, во второй части мы дальше настроим и разберем функционал работы NPM.

Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram, в котором я делюсь в формате заметок своими знаниями и интересным из мира IT или посетить мой сайт, спасибо за потраченное время на чтение и доброго времени суток!)

Вы так же можете выразить благодарность автору за статью, покупкой кофе:
Кофейня тут)

#linux #nginx proxy manager #nginx #debian #docker #docker compose #proxy #reverse proxy

nginx proxy manager docker, npm, npm install, обратный прокси, nginx обратный прокси, reverse proxy