
Nginx Proxy Manager — это удобный web движок, который упрощает процесс управления обратным прокси сервером nginx.
В этой статье я как можно подробнее опишу процесс инсталляции и настройки обратного прокси сервера Nginx Proxy Manager на Ubuntu 24.04LTS
Содержание статьи
- Возможности решения
- Системные требования
- Настройка маршрутизатора
- Подготовка сервера
- Установка Docker
- Создание папок для проекта
- Создание конфигурационного файла
- Создание и запуск Nginx Proxy Manager
- Обзор Web интерфейса
- Настройка решения
- Управление прокси редиректами
- Управление SSL сертификатами
- Заключение
Возможности решения
- Красивый и безопасный интерфейс администратора
- С ним вы быстро и легко сможете создавать переадресацию по доменным запросам пользователей, перенаправления, потоки и хосты 404, без изнуряющих копаний в конфигурационных файлах Nginx
- Бесплатный SSL с помощью Let’s Encrypt или предоставьте свои собственные SSL-сертификаты
- Списки доступа и базовая HTTP-аутентификация для ваших хостов
- Расширенная конфигурация Nginx доступна для суперпользователей
- Управление пользователями, разрешения и журнал аудита
Системные требования
- Процессор: 1 ядро от 1 ГГц
- Оперативная память: от 1 ГБ
- Накопитель: от 5 ГБ для LXC и 10 ГБ для полновесной ВМ
Размер развернутого решения в LXC контейнере с Ubuntu 24.04LTS:

Статистика контейнера:

Настройка маршрутизатора
На нашем маршрутизаторе создаем dstnat правило для запросов по портам 80,443 и в адресе получателя указываем наш обратный прокси.
Подготовка сервера
Все действия в системе я произвожу под root:
sudo -s
В случае если у нас виртуальная машина, а не контейнер настраиваем сеть:
Удаляем дефолтные конфиги:
rm /etc/netplan/*.*
Создаем конфигурационный файл:
nano /etc/netplan/config.yaml
network:
ethernets:
ens18:
dhcp4: false
addresses: [192.168.1.200/24]
gateway4: 192.168.1.254
nameservers:
addresses: [192.168.1.201,192.168.1.202]
version: 2
Сохраняем файл, выходим из редактора:
CTRL+O, CTRL+X
Применяем конфигурацию:
netplan apply
Обновляем систему:
apt update && apt upgrade -y
Устанавливаем дополнительные пакеты:
apt install mc net-tools curl ca-certificates -y
Установка Docker
Добавим GPG key от репозитория Docker:
Устанавливаем права на директорию:
install -m 0755 -d /etc/apt/keyrings
Скачиваем ключ репозитория:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
Меняем права на файл ключа репозитория:
chmod a+r /etc/apt/keyrings/docker.asc
Добавим репозиторий Docker:
echo \
«deb [arch=$(dpkg —print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo «$VERSION_CODENAME») stable» | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
Обновим сведения о пакетах в репозиториях:
apt update
Устанавливаем Docker:
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Проверяем статус службы Docker:
systemctl status docker

Создание папок для проекта
Создаем каталог под Docker проекты:
mkdir /Docker
Создаем каталог под Nginx Proxy Manager:
mkdir /Docker/Nginx_Proxy
Создаем каталоги для данных:
mkdir /Docker/Nginx_Proxy/{data,letsencrypt}
Создание конфигурационного файла
Приступим к написание конфигурационного docker-compose файла:
nano /Docker/Nginx_Proxy/docker-compose.yml
version: ‘3.9’
services:
app:
image: ‘jc21/nginx-proxy-manager:latest’
restart: unless-stopped
ports:
# В этой секции мы прописываем порты проброса от хоста: к контейнеру
— ’80:80′
— ‘443:443’
— ’81:81′ # WEB Консоль управления Nginx Proxy Manager
volumes:
# В этой секции мы сопоставляем каталоги хоста и контейнера
— ./data:/data
— ./letsencrypt:/etc/letsencrypt
Сохраняем файл и выходим из редактора:
CTRL+O, CTRL+X
Создание и запуск Nginx Proxy Manager
Переходим в каталог /Docker/Nginx_Proxy:
cd /Docker/Nginx_Proxy
Запускаем Docker-compose:
docker compose up -d
Процесс пошел:

Дожидаемся окончания создания и запуска:

Проверяем статус контейнеров:
docker compose ps

Обзор Web интерфейса
Открываем браузер и переходим по адресу:
http://ip_address:81
Администратор по умолчанию:
Email: admin@example.com
Password: changeme

В целях безопасности, система первым делом попросит нас отредактировать учетную запись администратора:

А также установить новый пароль:

На главной странице DashBoard, мы видим статистику по количеству добавленных прокси хостов, узлы редиректа, потоки и отбойники 404:

В системе присутствует журнал аудита:

Раздел пользователей системы:

Раздел управления сертификатами:

Списки доступа к ресурсам:

А также основной раздел Hosts, в которым осуществляются основные настройки по редиректу:

Настройка решения
Заглянем в настройки —> Settings—> выбираем edit чтобы взглянуть, что может предложить система в качестве настроек:

Система спрашивает, что делать если запрос приходит на неизвестный хост:

- Congratulations Page — стартовая страница nginx
- 404 Page — ошибка 404
- No Response (444) — не отвечать на запрос
- Redirect — переадресация, пример https://yandex.ru
- Custom Page — выводим свою страницу с сообщением, пример:

Управление SSL сертификатами
Одной из замечательных особенностей Nginx Proxy Manager является встроенное управление SSL-сертификатами. Чтобы настроить SSL для прокси-хоста:
- Перейдите в раздел «SSL-сертификаты» на боковой панели.
- Нажмите «Добавить SSL-сертификат».
- Выберите между «Let’s Encrypt» для бесплатного автоматического продления сертификатов или «Custom» для загрузки собственных сертификатов.
- Для Let’s Encrypt:Введите доменные имена, которые вы хотите защитить.
- Укажите действительный адрес электронной почты для уведомлений о продлении.
- Согласитесь с Условиями предоставления услуг Let’s Encrypt.
- Нажмите «Сохранить», чтобы сгенерировать и установить сертификат.
После создания сертификата вы можете назначить его своим прокси-хостам, отредактировав их и выбрав соответствующий сертификат в разделе SSL.
Заключение
Я надеюсь статья вам понравилась и вы возьмете решение на заметку, я в свою очередь использую именно это решение, чего и вам желаю.