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

Главная страница » Сеть и сервисы » Nginx Proxy Manager: красивый reverse proxy с веб-интерфейсом для вашего умного дома
Nginx Proxy Manager: красивый reverse proxy с веб-интерфейсом для вашего умного дома
Сеть и сервисы

Nginx Proxy Manager: красивый reverse proxy с веб-интерфейсом для вашего умного дома

31.03.2026 163
Nginx Proxy Manager: красивый reverse proxy с веб-интерфейсом для вашего умного дома

Пошаговая настройка Nginx Proxy Manager на Raspberry Pi. Красивый веб-интерфейс, SSL от Let's Encrypt и удобный доступ ко всем сервисам умного дома.

Приветствую всех, кто, как и я, любит собирать домашнюю инфраструктуру на одноплатниках! Если у вас, как и у меня, на полке шумит Raspberry Pi или Orange Pi, на котором крутится Home Assistant, пара самописных сервисов на ESP32, медиасервер и ещё что-нибудь эдакое, то вы наверняка сталкивались с проблемой: как ко всему этому удобно обращаться извне? Запоминать разные порты (192.168.1.100:8123, 192.168.1.100:8086, 192.168.1.100:3000) — неудобно. А хочется красивых адресов вроде hass.myhome.net или grafana.myhome.net. Именно здесь на помощь приходит reverse proxy (обратный прокси).

Сегодня я расскажу об одном из самых элегантных решений для этой задачи — Nginx Proxy Manager (NPM). Это не просто обёртка для мощного веб-сервера Nginx, а полноценный инструмент с дружелюбным веб-интерфейсом, который избавит вас от правки конфигов вручную и запоминания сложных синтаксисов. Всё управляется через браузер!

Зачем мне это? Простые сценарии из жизни

Представьте, что вы настроили Home Assistant для управления своим умным домом. Он работает на порту 8123. У вас также есть самописная панель мониторинга на Node-RED (порт 1880) и, возможно, система логирования. С Nginx Proxy Manager вы сможете: * Объединить доступ ко всем сервисам под одним доменом: hass.myhome.net, nodered.myhome.net. * Выдавать валидные SSL-сертификаты Let's Encrypt для всех сервисов одним кликом, чтобы в браузере был красивый замочек и безопасное HTTPS-соединение. * Организовать безопасный доступ извне только к прокси, не открывая кучу портов на роутере для каждого сервиса. * Добавлять простую HTTP-базовую аутентификацию к тем сервисам, у которых её нет из коробки.

И всё это без единого правленного вручную конфига Nginx. Звучит заманчиво? Тогда поехали!

Установка Nginx Proxy Manager: Docker — наш лучший друг

NPM распространяется как Docker-образ, что делает установку невероятно простой и чистой. Неважно, используете вы Raspberry Pi OS, DietPi или Ubuntu — шаги будут одинаковыми. Я буду показывать на примере своего основного сервера на Raspberry Pi 4, но это работает везде, где есть Docker.

Шаг 1: Подготовка системы и установка Docker

Если Docker у вас ещё не установлен, это делается одной командой. Я предпочитаю официальный скрипт для удобства.

# Скачиваем и запускаем официальный скрипт установки Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Добавляем текущего пользователя в группу docker, чтобы не писать sudo перед каждой командой
sudo usermod -aG docker $USER

Важно: После добавления пользователя в группу нужно выйти из системы и зайти заново (или перезапустить сессию SSH), чтобы изменения вступили в силу.

Проверим, что Docker установился корректно:

docker --version
# Должны увидеть что-то вроде: Docker version 24.0.7, build afdd53b

Шаг 2: Запуск Nginx Proxy Manager в Docker

Мы будем использовать docker-compose — это удобный способ описать настройки контейнера в YAML-файле и управлять им. Создадим директорию для проекта и файл docker-compose.yml.

# Создаём удобную директорию для проекта
mkdir -p ~/nginx-proxy-manager
cd ~/nginx-proxy-manager

# Создаём файл docker-compose.yml
nano docker-compose.yml

В открывшийся редактор вставляем следующую конфигурацию. Это стандартный набор, рекомендованный разработчиками:

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - '80:80'   # Порт для HTTP
      - '81:81'   # Порт веб-интерфейса самого NPM
      - '443:443' # Порт для HTTPS
    volumes:
      - ./dаta:/data          # Здесь хранятся конфиги NPM и SSL-сертификаты
      - ./letsencrypt:/etc/letsencrypt  # Директория для сертификатов Let's Encrypt
    environment:
      DB_SQLITE_FILE: "/data/database.sqlite" # Указываем использовать встроенную SQLite БД

Комментарии к конфигурации: * ports: Мы пробрасываем три критически важных порта с хоста (вашего Pi) в контейнер. * 80:80 и 443:443 — это порты, которые будут принимать входящий веб-трафик для ваших сервисов. * 81:81 — порт для самого веб-интерфейса управления NPM. * volumes: Мы монтируем две директории. Это важно для сохранения данных (ваших настроек прокси и сертификатов) при обновлении или пересоздании контейнера. * restart: unless-stopped гарантирует, что контейнер автоматически запустится после перезагрузки системы.

Сохраняем файл (в nanoCtrl+X, затем Y, затем Enter).

Теперь запускаем контейнер:

# Запускаем контейнер в фоновом режиме
docker-compose up -d

Проверим, что контейнер запустился и работает:

docker ps
# Должны увидеть контейнер "nginx-proxy-manager" в статусе "Up"

Первый вход и базовая настройка веб-интерфейса

Откройте браузер и перейдите по адресу http://ВАШ_IP_АДРЕС:81. Например, http://192.168.1.100:81.

Вас встретит окно первого входа. * Email: admin@example.com * Пароль: changeme

Сразу после первого входа система заставит вас сменить email и пароль на свои! Обязательно сделайте это и запишите надёжные данные.


Поздравляю, вы внутри! Интерфейс интуитивно понятен: слева меню, в центре — дашборд, виджеты и список уже созданных прокси-хостов (пока пустой).

Создаём первый прокси-хост: выводим Home Assistant под своим доменом

Давайте на реальном примере настроим доступ к Home Assistant через NPM с красивым адресом и SSL.

Предварительные условия

  1. У вас должен быть настроен и работать Home Assistant (например, на порту 8123 того же сервера).
  2. У вас должен быть свой домен (например, myhome.net). Мы будем использовать поддомен hass.myhome.net.
  3. В настройках DNS вашего домена нужно создать A-запись, которая будет указывать ваш поддомен на внешний IP-адрес вашего домашнего интернета. Если вы настраиваете только для локальной сети, можно использовать локальный IP.

Шаг 1: Добавляем Proxy Host

В интерфейсе NPM нажимаем Hosts -> Proxy Hosts -> Add Proxy Host.

Заполняем вкладку Details: * Domain Names: hass.myhome.net (можно несколько через запятую). * Scheme: http (так как Home Assistant внутри сети работает по HTTP). * Forward Hostname / IP: Впишите локальный IP-адрес вашего сервера с Home Assistant. Если он на той же машине, что и NPM, то 192.168.1.100 или, что чаще правильно, host.docker.internal (особый DNS-адрес Docker для доступа к хосту). * Forward Port: 8123 (стандартный порт Home Assistant).


Шаг 2: Получаем бесплатный SSL-сертификат Let's Encrypt

Это "вишенка на торте". Переключаемся на вкладку SSL. * SSL Certificate: Выбираем Request a new SSL Certificate. * Ставим галочку Force SSL — это автоматически перенаправит все HTTP-запросы на HTTPS. * I agree... — соглашаемся с условиями Let's Encrypt. * Email Address for Let's Encrypt: Вводим свой email.

Нажимаем Save. NPM начнёт процесс получения сертификата. Если домен (hass.myhome.net) корректно указывает на ваш IP-адрес, а порты 80 и 443 открыты на роутере и проброшены на сервер с NPM, через минуту вы увидите зелёную галочку и статус "Valid" напротив вашего хоста.

Типичная ошибка на этом этапе: "Invalid domain" или таймаут. Причины: 1. Порт 80/443 закрыт на роутере. Вам нужно настроить Port Forwarding на роутере: внешние порты 80 и 443 направить на внутренний IP-адрес вашего сервера с NPM на те же порты. 2. DNS-запись ещё не обновилась. Это может занять до 24 часов, хотя обычно быстрее. Проверьте запись командой nslookup hass.myhome.net. 3. Проблемы с IPv6. Если у вас не настроен IPv6, в настройках домена отключите AAAA-запись.

Продвинутые сценарии и полезные фишки

1. Базовая HTTP-аутентификация (Basic Auth)

Допустим, у вас есть сервис без своего встроенного логина (например, простая панель статуса). NPM позволяет поставить на него пароль.

Создаём Proxy Host как обычно. Затем во вкладке Advanced вставляем следующий конфиг:

# Включаем базовую аутентификацию
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;

Но где взять файл .htpasswd? NPM умеет создавать их через интерфейс! Идем в меню Access Lists -> Create Access List. Выбираем тип "Authentication", задаём имя и добавляем пользователей (логин/пароль). После создания, в настройках Proxy Host на вкладке Access List выбираем созданный список.

2. Прокси для веб-сокетов (WebSocket)

Для таких сервисов, как Home Assistant или Node-RED, часто требуется поддержка WebSocket-соединений для реального времени. Для этого в том же блоке Advanced добавьте:

# Поддержка WebSocket
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

3. Прокси для IP-камер или простых устройств

Вы можете направить поддомен не только на веб-сервисы, но и на IP-камеры с веб-интерфейсом или другие устройства в сети. Главное — правильно указать IP и порт. Это отлично работает в связке с Node-RED + Home Assistant, где вы можете создать единую панель управления с доступом ко всем камерам по удобным адресам.

Проверка результата и тестирование

Всё настроено? Пора проверить! 1. Локально: Откройте браузер и перейдите по своему домену, например, https://hass.myhome.net. Вы должны увидеть интерфейс Home Assistant, а в адресной строке — зелёный замочек. 2. Проверка SSL: Зайдите на сайт SSL Labs SSL Test и проанализируйте свой домен. Должна быть оценка A или A+. 3. Извне: Попробуйте зайти на свой домен с мобильного интернета (отключив Wi-Fi). Если настройки роутера (Port Forwarding) верны, всё будет работать.

Заключение

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

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

Попробуйте, и вы уже не сможете представить свой домашний сервер без этой изящной панели управления прокси. Удачи в настройке!

Понравилась статья?

Поставьте лайк и сохраните полезный материал в закладки.

Комментарии (0)
Добавить комментарий
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Nginx Proxy Manager: установка и первоначальная настройка reverse proxy с HTTPS в Docker
Сеть и сервисы
02.09.2026
Nginx Proxy Manager: установка и первоначальная настройка reverse proxy с HTTPS в Docker
Пошаговая установка Nginx Proxy Manager в Docker: настройка reverse proxy, получение SSL-сертификатов Let's Encrypt и проксирование сервисов с HTTPS. Практическое
VPN только для выбранных сайтов и устройств в OpenWrt: раздельная маршрутизация трафика
Сеть и сервисы
09.09.2026
VPN только для выбранных сайтов и устройств в OpenWrt: раздельная маршрутизация трафика
Настройка раздельной маршрутизации в OpenWrt: как направить трафик только выбранных устройств или доменов через VPN, оставив остальной интернет напрямую. Три способа:
Как проверить IP на блокировку в ТСПУ: рабочий Python-скрипт для диагностики
Сеть и сервисы
02.09.2026
Как проверить IP на блокировку в ТСПУ: рабочий Python-скрипт для диагностики
Практический Python-скрипт для проверки доступности IP или домена через DNS, TCP 443, TLS и HTTPS. Работает на Windows, Raspberry Pi, Rock Pi, Orange Pi, Debian, Ubuntu
Routerich AX3000: настройка роутера на OpenWrt, Mesh, TorrServer и сетевое хранилище
Сеть и сервисы
04.09.2026
Routerich AX3000: настройка роутера на OpenWrt, Mesh, TorrServer и сетевое хранилище
Routerich AX3000 с OpenWrt оказался гораздо дружелюбнее, чем можно ожидать от роутера с настолько гибкой прошивкой. Разбираемся с первоначальной настройкой, Mesh,
Grafana + InfluxDB на Raspberry Pi: создаём красивый дашборд для мониторинга всего дома
Сеть и сервисы
31.03.2026
Grafana + InfluxDB на Raspberry Pi: создаём красивый дашборд для мониторинга всего дома
Пошаговое руководство по установке Grafana и InfluxDB на Raspberry Pi для красивого и мощного мониторинга умного дома, сервера и DIY-устройств. Все команды и конфиги
ZeroBlock для OpenWrt: настройка VPN и маршрутизации на Routerich
Сеть и сервисы
05.09.2026
ZeroBlock для OpenWrt: настройка VPN и маршрутизации на Routerich
Практическая инструкция по установке и настройке ZeroBlock на OpenWrt. Разберём подключение VPN, работу с sing-box, DNS, секциями маршрутизации, автозапуск и базовую

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