Задать вопрос
Все статьи / Полезная информация / Полный гайд по настройке Nginx Proxy Manager
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

Полный гайд по настройке Nginx Proxy Manager

Работа с несколькими веб-сервисами на одном сервере неизбежно приводит к необходимости управлять доменными именами, портами, сертификатами и правилами доступа. Настраивать всё вручную через конфигурации Nginx – достаточно непросто: легко ошибиться в деталях, а сама процедура отнимает много времени и требует немало усилий.

Nginx Proxy Manager решает эту задачу за счет веб-интерфейса, который позволяет создавать прокси-записи, настраивать HTTPS и распределять доступ к сервисам, не редактируя конфигурационные файлы напрямую. 

В статье мы покажем, как установить и настроить Nginx Proxy Manager, а также расскажем об этом инструменте подробнее.

Основы: про Nginx и обратный прокси 

Nginx – это веб-сервер и инструмент для распределения нагрузки. Он может быстро отдавать статические файлы, работать с большим числом одновременных подключений и направлять входящий трафик к нужным внутренним сервисам. Его архитектура построена так, чтобы эффективно обрабатывать запросы без лишних задержек, поэтому Nginx часто используют как основу для высоконагруженных веб-проектов.

Одно из ключевых применений Nginx – роль обратного прокси. В этом режиме сервер принимает входящие запросы от клиентов и передает их дальше к приложению, размещенному на другом сервере или в отдельном процессе. Пользователь взаимодействует только с Nginx, а не с конечным приложением. Таким образом можно не раскрывать внутреннюю инфраструктуру, распределять нагрузку между несколькими экземплярами сервиса, кешировать ответы и фильтровать запросы.

Обратный прокси помогает уменьшить время отклика, повысить отказоустойчивость и контролировать поток трафика. За счет центральной точки входа можно гибко управлять маршрутизацией, подключать дополнительные модули и выстраивать эффективную схему безопасности.

Что такое Nginx Proxy Manager 

Nginx Proxy Manager – это инструмент для работы с обратными прокси на базе Nginx, который предоставляет веб-панель для управления доменами, SSL-сертификатами и маршрутизацией. 

Все настройки выполняются через браузер, поэтому вам не нужно открывать и редактировать конфигурационные файлы вручную. Через интерфейс можно назначать доменные имена, создавать прокси-записи, настраивать доступ и управлять безопасным соединением.

Сервис позволяет организовать единую точку входа для разных веб-приложений, расположенных на одном сервере или в локальной сети. Он помогает централизовать управление маршрутизацией и упростить администрирование. Проект полностью бесплатный и распространяется с открытым исходным кодом.

Он расширяет функциональность классического веб-сервера за счет следующих возможностей:

  • веб-интерфейс для создания и изменения прокси-записей;
  • настройка перенаправлений, потоков TCP и UDP, а также собственных страниц ошибок;
  • интеграция с Let's Encrypt для выпуска бесплатных SSL-сертификатов и поддержка сертификатов других центров;
  • механизмы безопасности: списки доступа и базовая HTTP-аутентификация;
  • управление пользователями, распределение прав и просмотр журналов.

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

Интересный факт! Nginx Proxy Manager никак не связан с компанией NGINX Inc.

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

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

1. Открытие сетевых портов

Для корректной работы Nginx Proxy Manager на сервере должны быть доступны порты 80, 81 и 443. Через них проходят HTTP-запросы, HTTPS-соединения и обращения к панели управления. Необходимо разрешить трафик на эти порты.

Если на сервере активен UFW, добавьте правила следующими командами:

ufw allow 80,81,443/tcp
ufw allow 80,81,443/udp

В системах, где применяется iptables, разрешения на трафик настраиваются вручную. Чтобы настроить входящие соединения, пропишите:

iptables -A INPUT -p tcp --match multiport --dports 80,81,443 -j ACCEPT
iptables -A INPUT -p udp --match multiport --dports 80,81,443 -j ACCEPT

Чтобы настроить исходящие, введите:

iptables -A OUTPUT -p tcp --match multiport --dports 80,81,443 -j ACCEPT
iptables -A OUTPUT -p udp --match multiport --dports 80,81,443 -j ACCEPT

2. Установка Docker и Docker Compose

Nginx Proxy Manager работает в контейнерах, поэтому перед установкой необходимо подготовить систему и установить Docker вместе с плагином Docker Compose. 

Создайте директорию для хранения GPG-ключа:

sudo 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 "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Обновите индекс пакетов и установите необходимые компоненты:

apt update && apt -y install docker-ce docker-compose-plugin

Проверьте, что Docker установлен:

docker --version

Проверьте работу Docker Compose:

docker compose version

Если обе команды выводят номера версий, установка завершена успешно и сервер готов к работе с контейнерами.

3. Развертывание тестовых сервисов

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

Для начала добавьте локальные доменные имена. Интерфейс docker0 по умолчанию получает адрес 172.17.0.1. Откройте файл hosts:

nano /etc/hosts

Добавьте тестовые записи:

172.17.0.1 app-one.local
172.17.0.1 app-two.local
172.17.0.1 app-three.local

Создайте директорию для будущих контейнеров и перейдите в нее:

mkdir web-demo && cd web-demo

Создайте файл docker-compose.yml:

nano docker-compose.yml

Добавьте конфигурацию:

services:
  alpha:
    image: nginx:alpine3.21
    ports:
      - "9101:80"
    volumes:
      - ./alpha/html:/usr/share/nginx/html
    command: ["/bin/sh", "-c", "echo 'Alpha service is active' > /usr/share/nginx/html/index.html && nginx -g 'daemon off;'"]
  beta:
    image: nginx:alpine3.21
    ports:
      - "9102:80"
    volumes:
      - ./beta/html:/usr/share/nginx/html
    command: ["/bin/sh", "-c", "echo 'Beta endpoint ready' > /usr/share/nginx/html/index.html && nginx -g 'daemon off;'"]
  delta:
    image: nginx:alpine3.21
    ports:
      - "9103:80"
    volumes:
      - ./delta/html:/usr/share/nginx/html
    command: ["/bin/sh", "-c", "echo 'Delta service operational' > /usr/share/nginx/html/index.html && nginx -g 'daemon off;'"]

Запустите контейнеры:

docker compose up -d

Проверьте, что все сервисы работают:

docker ps

Убедитесь, что каждый контейнер возвращает свое сообщение:

curl 172.17.0.1:9101
curl 172.17.0.1:9102
curl 172.17.0.1:9103

Установка Nginx Proxy Manager 

Для установки Nginx Proxy Manager потребуется создать отдельный каталог с конфигурацией и подготовить файл docker-compose.yml, который определяет параметры контейнера. 

Создайте директорию для проекта и перейдите в нее:

mkdir nginx-proxy-manager && cd nginx-proxy-manager

Внутри создайте файл docker-compose.yml:

nano docker-compose.yml

Добавьте конфигурацию:

services:
  npm:
    image: jc21/nginx-proxy-manager:latest
    restart: unless-stopped
    ports:
      - "80:80"
      - "81:81"
      - "443:443"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Сохраните файл и закройте редактор. Запустите контейнер:

docker compose up -d

Во время первого запуска Docker автоматически загрузит образ Nginx Proxy Manager. Проверить состояние можно командой:

docker ps

Настройка Nginx Proxy Manager 

Шаг 1. Откройте панель управления и выполните вход

Откройте браузер и перейдите по адресу:

http://<IP-адрес_сервера>:81

На экране появится форма авторизации. Используйте учетные данные по умолчанию:

Email: admin@example.com
Password: changeme

Откроется окно с предложением изменить параметры стандартного пользователя.

Шаг 2. Измените данные администратора

В открывшейся форме укажите новый адрес электронной почты, который будет использоваться как основной логин. При необходимости задайте другое имя и псевдоним. Сохраните изменения, после чего появится форма для смены пароля.

Введите текущий пароль, затем задайте новый и повторите его. 

Далее откроется главная страница Nginx Proxy Manager.

Шаг 3. Добавьте прокси-хосты для приложений

Перейдите в раздел Proxy Hosts – на главной странице панели он находится в верхнем меню. Откроется список доступных записей. 

Чтобы создать новую, нажмите Add Proxy Host.

В форме настройки заполните основные поля:

  • Domain Names – доменное имя, по которому будет открываться ваше приложение;
  • Forward Hostname / IP – адрес контейнера или сервера, где работает сервис;
  • Forward Port – порт, который обслуживает приложение.

Вы также можете включить SSL, указать параметры кеширования или добавить собственные заголовки, однако для базовой настройки эти параметры не обязательны. 

Сохраните запись кнопкой Save.

Снова нажмите Add Proxy Host и создайте записи для двух других сервисов по той же схеме: уникальное доменное имя, адрес контейнера и соответствующий порт. В итоге в списке должны появиться три прокси-хоста.

Вернитесь в терминал сервера и выполните запросы:

curl app-one.local
curl app-two.local
curl app-three.loca
l

Дополнительные настройки

Nginx Proxy Manager может работать без внешней базы данных, потому что в него встроена SQLite. Однако SQLite подходит только для очень простых сценариев: одного пользователя, небольшого количества прокси-записей и минимальной нагрузки. 

Если панель используется как постоянный рабочий инструмент, если вы хотите делать бэкапы базы в удобном виде или запускаете Proxy Manager не на одном сервере, лучше перейти на MySQL или MariaDB. Эти базы надежнее, быстрее и гораздо удобнее в обслуживании.

Чтобы Nginx Proxy Manager начал работать с внешней базой, достаточно изменить docker-compose-файл и добавить в него второй контейнер – сервер базы данных. Оба контейнера будут находиться в одной сети Docker и смогут общаться между собой напрямую.

Пример конфигурации:

services:
  npm:
    image: jc21/nginx-proxy-manager:latest
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "81:81"
    environment:
      DB_MYSQL_HOST: "database"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm_user"
      DB_MYSQL_PASSWORD: "npm_password123"
      DB_MYSQL_NAME: "npm_storage"
    volumes:
      - ./npm-data:/data
      - ./npm-certs:/etc/letsencrypt
    depends_on:
      - database
  database:
    image: mariadb:10.6
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: "root_secret"
      MYSQL_DATABASE: "npm_storage"
      MYSQL_USER: "npm_user"
      MYSQL_PASSWORD: "npm_password123"
    volumes:
      - ./mysql-data:/var/lib/mysql

Здесь Proxy Manager запускается как сервис npm, а MariaDB – как сервис database.


Имя database – это не просто название. В Docker оно работает как DNS-адрес, поэтому Proxy Manager подключается к базе данных по имени контейнера, а не по IP. Docker сам создает внутреннюю виртуальную сеть, и контейнеры видят друг друга по этим именам.

В блоке environment у Proxy Manager указаны параметры подключения: хост, порт, пользователь, пароль и название базы. Эти значения должны совпадать с тем, что задается в контейнере MariaDB. При запуске MariaDB автоматически создает базу npm_storage, пользователя npm_user и назначает ему пароль. Этого достаточно, чтобы Proxy Manager смог войти и создать свои таблицы.

Чтобы запустить такую конфигурацию, выполните:

docker compose up -d

Docker скачает оба образа (если они еще не установлены), создаст контейнеры и запустит их. Сначала поднимется MariaDB, потому что она указана как зависимость. Затем запустится сам Proxy Manager и подключится к базе автоматически – никаких дополнительных действий в интерфейсе выполнять не нужно.

Если все прошло успешно, Proxy Manager будет работать точно так же, как и раньше, но все его данные теперь будут храниться в отдельной СУБД. 

Примеры использования Nginx Proxy Manager 

Nginx Proxy Manager подходит для множества задач, которые связаны с управлением веб-сервисами. Он помогает упорядочить работу приложений, облегчает настройку HTTPS и дает удобный контроль над доступом. 

Рассмотрим несколько ситуаций, в которых инструмент полезен:

Единый доступ к нескольким приложениям

Если на одном сервере работает сразу несколько сервисов, каждый из них доступен по своему порту. С помощью Proxy Manager можно назначить каждому сервису собственное доменное имя и тем самым скрыть реальные порты.

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

Получение HTTPS в пару кликов

Зачастую подключение HTTPS превращается в испытание: приходится разбираться с ключами, сертификатами и множеством параметров конфигурации. Через Proxy Manager процесс значительно проще. 

Достаточно выбрать доменное имя, включить SSL и запросить сертификат от Let’s Encrypt. Панель сама выпустит сертификат, настроит HTTPS и будет обновлять его автоматически. Если на сервере размещено много сервисов или хочется быстро обеспечить безопасное соединение, задумайтесь об этом способе.  

Контроль доступа к внутренним ресурсам

Некоторые приложения должны быть доступны только избранным пользователям или только внутри локальной сети. Proxy Manager позволяет ограничить доступ буквально в несколько шагов. 

Можно разрешить вход только с определенных IP-адресов или включить базовую авторизацию через пароль. Так вы сможете защитить панели управления, внутренние инструменты или личные интерфейсы, которые требуют дополнительного уровня безопасности.

Управление конфигурациями 

Как правило, чтобы настроить проксирование, приходится работать с файловой структурой Nginx и вручную прописывать параметры для каждого сайта. Proxy Manager заменяет этот процесс веб-интерфейсом: все записи находятся в одном месте, любые изменения применяются сразу, а дополнительные параметры вроде заголовков, WebSocket или редиректов включаются через удобные переключатели. Администратор получает тот же функционал Nginx, но в более безопасной и понятной форме.

Удобство в разработке и тестировании

В процессе разработки бывает необходимо работать сразу с несколькими версиями приложения. Proxy Manager помогает легко разделить их с помощью разных доменных имен. Например, стабильно работающую версию можно открыть по одному адресу, тестовую – по другому, а экспериментальную – по третьему. 

Публикация сервисов для распределенной команды

Если нужно открыть доступ к корпоративным сервисам извне, Proxy Manager может выступать в роли точки входа. Он принимает трафик, перенаправляет его на нужные внутренние сервисы, обеспечивает HTTPS и скрывает структуру сети. 

Это удобно для командной работы, когда нужно дать сотрудникам доступ к определенным инструментам, не раскрывая внутренние IP-адреса и не открывая порты напрямую.

Заключение    

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

И самое важное – этот инструмент может принести ощутимую пользу бизнесу. Он помогает быстрее развертывать сервисы, упрощает обслуживание, делает доступ к внутренним и внешним ресурсам более безопасным, а управление доменами и сертификатами – прозрачным. Это экономит время сотрудников, снижает нагрузку на техническую команду и позволяет сосредоточиться на задачах, которые действительно влияют на развитие компании.
 

Предыдущая статья
Открытый и закрытый ключ шифрования SSL: что это и зачем они...
Следующая статья
Пошаговая установка Grafana на Ubuntu