June 24, 2025

Настройка NGINX Proxy Manager для работы с доменами на REG.RU на UNRAID

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

Однако после первичной настройки и радости от мысли и собственном маленьком "дата-центре", пришла пора задуматься о безопасности. Пускай все сервисы на моем UNRAID сервере живут в контейнерах, открывать и перенаправлять все новые и новые порты мне надоело, а делиться адресом вроде 187.22.154.241:8096 просто неудобно. К тому же, популярное облачное хранилище Nextcloud прямо требует от тебя доменное имя, на котором будет квартироваться.

Обратный прокси NGINX позволяет убить двух птиц разом: закрыть "лишние" порты для внешнего интернета и обеспечить работу доменных имен с локальными адресами.

В данном гайде я расскажу (и покажу) как настроить NGINX Proxy Manager на UNRAID для работы с локальными сервисами, а так же получить бесплатные сертификаты Let's Encrypt!

Данный гайд не претендует на профессианализм, скорее всего есть способы настроить все лучше, правильнее и аккуратнее. Я лишь делюсь собственным опытом, тем, что помогло лично мне добиться требуемого результата.

Подготовка

Мне почему-то не удалось добиться успеха с кастомной сетью или режимом Bridge. Пришлось пользоваться режимом сети Host для контейнера. Но тогда возникает другая проблема: веб-интерфейс UNRAID и рабочий порт NGINX Proxy Manager одинаковые.

Поэтому самым перым делом надо изменить порт веб-интерфейса UNRAID. Для этого заходим в Settings, затем в Management Access и меняем HTTP порт.

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

Также для нормального доступа к своим сервисам крайне желательно (я бы даже сказал НЕОБХОДИМО) иметь статический адрес, который не будет меняться при каждом перезапуске роутера или оборудования провайдера даже если у вас не было ни единого разрыва с ноября прошлого года.

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

Далее, устанавливаем контейнер с официальным NGINX Proxy Manager

Возможно у остальных контейнеров все абсолютно так же, но я рекомендую поставить контейнер от mgutt's Repository во избежание каких-либо отличий.

Во время установки меняем тип сети на Host — контейнер получит приямой доступ к сетевому соединению нашего сервера.

На всякий случай проверьте, чтоб порми 80, 81 и 443 не пользовались другие контейнеры. Сделать это можно раскрыв меню ниже "Show docker allocations". Если какой-то контейнер использует эти порты - поменяйте настройки тех контейнеров.

Все установилось? Отлично! Заходим в веб-интерфейс NGINX Proxy Manager. При первом запуске для входа используем логин admin@example.com и пароль changeme.

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

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

В настройках своего роутера настраиваем переадресацию портов 80 и 443 на наш сервер. Положение этой настройки зависит от производителя роутера: например у ASUS она находится разделе "Интеренет", а у OpenWRT — в разделе Сеть -> Межсетевой экран.

Настройки REG.RU

Процесс регистрации и покупки домена мы здесь рассматривать не будем, я рассчитываю, что с этим вы справились сами.

В личном кабинете заходим в Домены, а там в DNS-серверы и управление зоной

Здесь нам нужно сделать А записи, которые будут прямо ссылаться на наш внешний IP-адрес. Скорее всего вы его уже знаете, но если что, всегода можно проверить на сервисе, вроде https://2ip.ru/, да даже Яндекс теперь при запросе "проверить свой IP" выдает готовый ответ.

Так же нам понадобятся CNAME записи на поддомены, на которых будут сидеть наши сервисы. Есть 2 способа: можно прописать каждый поддомен отельно, а можно просто разом закрыть все возможные варианта поставив *.

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

Настройка Proxy Hosts в NGINX Proxy Manager и создание бесплатных SSL сертификатов

Наконец мы добрались до самого главного! В веб-интерфейсе заходим в Proxy Hosts, жмем Add Proxy Host.

В верхней строке прописываем адрес (вводим, а потом мышкой жмем на появившийся вариант ниже). Scheme оставляем http - запрос происходит локально, после чего указывам ЛОКАЛЬНЫЙ IP-адрес сервиса и порт. Заодно включаем переключатели для блокировки самых простых эксплоитов в поддержку вебсокетс.

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

Переходим во вкладку SSL. Тут выбираем запросить новый SSL-сертификат или, например, использовать сертификат от основного домена. В данном примере мы запрашиваем новый. Включаем переключатели принудительного использования SSL и поддержку HTTP/2. Ниже видим наш адрес почты (при необходимости редактируем) — на него будут приходить уведомления об истечении срока действия и соглашаемся с условиями сервиса Let's Encrypt. Жмем Save.

Готово!

Можно проверять работоспособность и доступ по адресу. Можно просто ткнуть на него в списке прокси хостов.

Приятного добавления сервисов! На всякий случай напомню, что у Nextcloud AIO надо ссылаться на порт контейнера nextcloud-aio-apache (порт 11000).

One more thing

Доступ к субдомену с авторизацией

Иногда требуется предоставить доступ к сервису, веб-интерфейс которого недостаточно защищен. В моем случае это доступ к торренто-качалке Deluge, которой разрешено пользоваться мужу моей сестры — он помогает мне вести библиотеку Jellyfin. Поэтому поверх просто пароля, который запрашивает Deluge я добавил дополнительную авторизацию.

Заходим в Access Lists, жмем Add Access List.

В первой вкладке задаем и сохраняем имя списка, не забыв вкоючить Pass Auth to Host. На второй заводим логины и пароли. Опционально можно в третьей вкладке установить с каких IP-адресов в принципе принимать запросы. Например, если у кого-то тоже статический IP, можно вбить его туда и еще повысить безопасность.

Теперь можно вместо публичного доступа задать доступ по данному списку. Доступ по спискам можно настроить как для новых Proxy Hosts, так и отредактировать уже существующие.