
Nginx Proxy Manager обратный прокси для домашнего сервера
Nginx Proxy Manager — это удобный инструмент для управления обратным прокси-сервером на базе Nginx с помощью графического веб-интерфейса, позволяющий быстро и просто настраивать маршрутизацию и безопасность веб-приложений без ручного редактирования конфигураций.
Основные возможности
- Графический интерфейс для создания и управления прокси-хостами, где можно указывать доменные имена, IP-адреса и порты для перенаправления трафика.
- Автоматическая генерация и управление SSL-сертификатами через встроенную интеграцию c Let’s Encrypt (поддержка HTTPS).
- Простая настройка управления доступом: список разрешённых IP, HTTP Basic Auth и права пользователей.
- Работа через Docker, что облегчает установку и масштабирование сервиса.
Отличия от обычного Nginx
- Не требует ручной работы с конфигами — всё делается через веб-панель.
- Идеален для тех, кто предпочитает визуальное управление и автоматизацию задач, связанных с прокси и SSL.
Использование
- Всё управление осуществляется через веб-панель.
- После запуска можно добавлять новые приложения для проксирования, настраивать SSL и политики доступа буквально в несколько кликов
Преимущества
- Упрощение настройки обратного прокси для новичков и профессионалов.
- Безопасность благодаря централизованному SSL и спискам доступа
- Балансировка и маршрутизация трафика между разными сервисами, что повышает надёжность и производительность веб-приложений
Предварительные требования
- Linux север с установленным Docker Compose. Как установить Ubuntu Server и настроить Docker читайте в предыдущих статьях.
- Статический IP-адрес сервера. У сервера на котором будет установлен Nginx Proxy Manager не должен меняться IP-адрес, для этого в настройках вашего роутера найдите в списке клиентов ваш сервер и в настройках клиента установите галочку Static IP (в разных моделях может называться по-разному).
Установка
В любой папке, например, /home/user/apps
создайте папку и docker-compose.yml. Можно сделать следующей командой — она создаст папку с файлом и сразу откроет его в тестовом редакторе.
mkdir nginx-proxy && cd nginx-proxy && nano docker-compose.yml
services:
app:
container_name: nginx-proxy
image: 'docker.io/jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- 80:80
- 443:443
- 81:81
volumes:
- data:/data
- letsencrypt:/etc/letsencrypt
volumes:
data:
letsencrypt:
Сохраните, выйдите из редактора nano
(ctrl + x
) и запустите:
docker compose up -d
Описание проброшенных портов
80:80
— порт на котором по-умолчанию работает любой http веб-сервер, менять нельзя443:443
— порт для обработки https запросов, менять нельзя, но можете удалить, если не планируете использовать публичный домен для доступа из интернета81:81
— можете установить любой, необходим для доступа к веб-интерфейсу Nginx Proxy Manager
Минутка теории
Для тех кому интересно как это все работает и что значат настройки, которые мы указываем.
- после того как вы ввели доменное имя (homeassistant.iot) в браузере, он идет к DNS-серверу узнать на какой IP-адрес ведет этот домен
- DNS-сервер сервер отвечает что знает этот домен и нужно идти на IP-адрес 192.168.1.111 (в нашем примере такой)
- браузер идет по IP-адресу 192.168.1.111 на порт 80 (порт 80 по-умолчанию не указывается 192.168.1.111:80 значит тоже самое), а там у нас установлен Nginx Proxy Manager
- Nginx Proxy Manager принимает запрос от браузера и по своим настройкам определяет куда нужно перенаправить (проксировать) запросы относящиеся к homeassistant.iot
- в настройках Nginx Proxy Manager у нас будет указано что все запросы на домен homeassistant.iot нужно проксировать на IP-адрес 192.168.1.200:8123 — тут у нас установлен Home Assistant
Настройка веб-интерфейса
После запуска контейнера в браузере перейдите по адресу http://192.168.1.100:81, заменив IP-адрес на тот где у вас установлен Nginx Proxy Manager — откроется форма авторизации, авторизуйтесь, укажите email и пароль по умолчанию, после входа смените пароль.

Логин (Email) и пароль по умолчанию следующие:
- Email: admin@example.com
- Password: changeme
Настройка локальных доменов по http
В статье про настройку Adguard Home мы установили свой локальный DNS-сервер и научились перезаписывать DNS-запросы на примере доступа к Home Assistant по локальному домену вместо IP-адреса. Но хоть Home Assistant был доступен по домену homeassistant.iot все равно приходилось использовать порт в адресе. Сейчас мы это исправим и доступ будет осуществляться по http://homeassistant.iot
Перейдите в веб-интерфейс Adguar Home в раздел Фильтры -> Перезапись DNS-запросов и добавьте любые домены, которые вам нужны, но в поле IP-адрес теперь укажите адрес сервера где установлен Nginx Proxy Manager.

Вернитесь в веб-интерфейс Nginx Proxy Manager, в меню выберите Hosts -> Proxy Hosts и нажмите Add Proxy Host, заполните форму и сохраните изменения.

- Domain Names — укажите один или несколько доменов. Поле работает немного странно: сначала нужно введи домен, а потом мышкой нажать на него, для того чтобы домен добавился
- Scheme — оставьте http, т.к. ваше Home Assistant внутри сети доступен по http
- Forward Hostname / IP — введите IP-адрес сервера с Home Assistant. Если у вас Home assistant или другой сервис так же развернут в докер контейнере на этой же машине, то вы можете указывать адрес 172.17.0.1
- Forward Port — укажите порт, по которому у вас доступен Home Assistant, по-умолчанию это 8123
- Websockets Support — включите поддержку веб-сокетов
Попробуйте в браузере перейти по вашему домену, в нашем примере это homeassistant.iot — если вы увидели ошибку Bad request значит все настроили верно. Для безопасности Home Assistant ограничивает доступ, сейчас мы это исправим. Для других сервисов где нет такой проверки безопасности все должно уже работать, например вы можете добавить отдельный домен для доступа к Zigbee2MQTT.
Обратите внимание что браузеры часто видя странные доменные зоны переходят в поиск или перенаправляют на протокол https. В адресной строке полностью укажите http://homeassistant.iot и проверьте что браузер не перенаправил на https.
Настройка Home Assistant
Откройте файл конфигурации Home Assistant configuration.yaml
, добавьте следующий код и перезагрузите Home Assisatnt:
http:
use_x_forwarded_for: true
trusted_proxies:
- 192.168.1.111
Вместо 192.168.1.111 укажите IP-адрес сервера где установлен Nginx Proxy Manager. Эта конфигурация разрешает достук к Home Assistant с IP-адресов указанных в списке, в данном случае у нас он один.
Обратите внимание на то есть ли у вас в
configuration.yaml
секция http. Если она есть, то нужно добавить код в нее.
После перезагрузки Home Assistant попробуйте перейти по вашему домену (http://homeassistant.iot) — все должно работать.
Настройка публичных доменов по https
Для того чтобы обеспечить доступ к Home Assistant и другим вашим локальным сервисам у вас должно быть:
- статичный (белый) IP-адрес, которые предоставляется вашим провайдером
- домен, который вы можете купить, например на reg.ru. На данный момент (осень 2025г) домен в зоне .ru стоит 199р/год, но продление на следующий год будет стоить уже 849р/год.
Настройка домена у регистратора
Ниже приведен пример настройки домена у регистратора reg.ru. У других регистраторов алгоритм может немного отличаться, но термины и настройки должны быть примерно такими же.
После покупки домена перейдите в панель управления доменом и в качестве DNS-сервера выберите Бесплатные DNS-серверы Рег.ру

Кстати вы можете использовать свой DNS-сервер Adguard Home, но это строго НЕ РЕКОМЕНДУЕТСЯ, т.к. для этого на вашем роутере нужно будет открыть порт 53, а после того как вы это сделаете уже буквально через несколько минут к вашему DNS-серверу посыпется тысячи запросов — скорей всего ни ваш роутер, ни ваш сервер не выдержат такой нагрузки.
Далее на этой же странице нажмите Добавить запись, в открывшемся списке выбириет A запись и заполните форму:
- Subdomain — введите @ — так обозначается запись для домена второго уровня
- IP Address — введите IP-адрес, который предоставил вам провайдер


Для добавления доменов третьего уровня (например homeassistant.io-home.ru) в поле Subdomain введите homeassistant. Если вы планируете использовать много доменов третьего уровня, то можете в поле Subdomain указать * (звездочка). В таком случае все домены третьего уровня будут вести на указанный вам IP-адрес, если для них не будет добавлена отдельная A-запись. Отдельная A-запись имеет выше приоритет над * (звездочкой).
Обновление записей в DNS-серверах может занимавать до нескольких дней, но обычно (у рег.ру) добавление новых записей происходит за пару минут (обновление может занимать чуть дольше из-за кеширования). Проверить обновлена ли запись вы можете со своего компьютера командой
ping homeassistant.io-home.ru
Проброс портов на роутере
О том как пробросить порты мы рассказывали в этой статье, только теперь нам нужен порт не 8123, а два порта 80 и 443. Повторяем все тоже самое, то указываем другие порты.
В веб-интерфейса роутера перейдите в Network rules -> Port Forwarding и нажмите Add rule.


- Enable rule — включите галочку
- Description — любое описание, если нужно
- Input — подключение вашего провайдера
- Output — название сервера где установлен Nginx Proxy Manager. К сожалению Keenetic не отображает IP-адрес.
- Redirect to port — 80 и 443
У вас должно быть добавлены две записи, в общем списке уже отображаются IP-адреса.

Добавление Proxy
В веб-интерфейсе Nginx Proxy Manager, в меню выберите Hosts -> Proxy Hosts и нажмите Add Proxy Host, заполните форму и сохраните изменения.
Вы можете использовать публичные домены без SSL сертификата, т.е. по протоколу http, но за пределами локальной сети это становится небезопасно, т.к. теперь ваш сервис доступен из интернета, а трафик не зашифрован.
- на вкладке Details укажите все так же как мы делали для локального домена, только теперь укажите публичный домен
- перейдите на вкладку SSL, в поле SSL Certificate выберите Request a new SSL Crtificate, введите ваше email и примите условия и положения сервиса Let’s Encrypt.


Let’s Encrypt это сервис, который предоставляет бесплатные SSL сертификаты. Nginx Proxy Manager предоставляет удобный механизм запроса и обновления сертификатов.
На этом все, теперь ваши сервисы доступны из интернета по доменам. Но теперь будьте более бдительны с такими сервисам, например установите сложный пароль и включите двухфакторную аутентификацию в Home Assistant.