Приветствую тебя, дорогой читатель. Сегодня мы с тобой развернём Nginx Proxy Manager на нашем TrueNAS хранилище.
Вы можете спросить: для чего? Всё очень просто, в моей домашней лаборатории крутится несколько различных веб-сервисов. Часть из них смотрит в Интернет, часть обслуживает домашнюю лабораторию. Что это могут быть за сервисы:
- Веб-интерфейс управления NAS
- Веб-интерфейс управления ESXi
- Jellyfin
- Seafile
- Хранилище паролей
- Сайты домашней лаборатории
- Временные тестовые сайты
- Веб-интерфейс управления различных сервисов, того же VPN
Всё это добро крутится на разных IP адресах и разных портах. Было бы неплохо всё это аккуратно организовать в одном месте. При этом настроить автоматическую выдачу SSL сертификатов, для сервисов, торчащих в Интернет точно. А до локальных сервисов — займёмся этим потом, не в рамках данной статьи.
Обратный прокси-сервер (reverse proxy) — тип прокси-сервера, который ретранслирует запросы клиентов из внешней сети на один или несколько серверов, логически расположенных во внутренней сети. При этом для клиента это выглядит так, будто запрашиваемые ресурсы находятся непосредственно на прокси-сервере.
Сразу скажу, что обратный прокси-сервер у меня уже имеется на базе IIS, он прекрасно работает, на нём даже настроено автоматическое обновление SSL через PowerShell скрипты. Но я планирую избавиться от домашнего Windows сервера в пользу Linux. Благо TrueNAS из коробки позволяет это сделать, там весь нужный функционал уже собран в Nginx Proxy Manager с простым UI.
Nginx Proxy Manager — это готовый Docker контейнер, который позволяем развернуть простой и доступный обратный прокси-сервер с возможностью терминации SSL.
Установка Nginx Proxy Manager в TrueNAS
Будем устанавливать на грабли, это нормально.

Погнали. Находим в приложениях TrueNAS Nginx Proxy Manager.

Доступна версия 1.2.14. Install.

Конфигурировать пока особо не буду.

Обращаем внимание на настройки сети. WebUI порт 30020 — это порт web-интерфейса управления Nginx Proxy Manager. Оставляю его как есть.

HTTP порт, это порт, по которому Nginx Proxy Manager будет принимать HTTP запросы. По умолчанию установлено 30021, это не тот порт, который нам нужен, потом изменим. Пока просто проверим что софт устанавливается.
HTTPS Port, по которому Nginx Proxy Manager будет принимать HTTPS запросы. По умолчанию установлено 30022, это не тот порт, который нам нужен, потом изменим.

Хранилище не меняю, меня пока всё устраивает.

Предлагают выдать 2 CPU и 4ГБ RAM. Для nginx это даже избыточно. Ну пусть пока так и будет. Install.

Начинается процесс установки приложения.

Приложение в статусе Deploying.

Пришлось подождать значительное время. Однако, всё запустилось.

На порту 30020 открывается WebUI интерфейс управления.

Пользователь по умолчанию:
- Email: admin@example.com
- Пароль: changeme

После входа нам предлагают сменить аутентификационные данные администратора.

Готово.

Давайте добавим новый прокси-хост.

Указываю домен, схему, IP адрес локальной машины куда проксировать, порт, у меня 80. Можно блокировать какие-то известные эксплойты.

Первый хост добавлен, но ничего не работает. И это нормально.

Проблема в том, что на нужных мне портах 80 и 443 работает интерфейс TrueNAS. Нужно его переключить на что-то другое.

Меняем порты на другие, к примеру, на 81 и 444.

Ждём пока интерфейс TrueNAS перезапустится.

Порты 80 и 443 свободны.

Перенастраиваем наше приложение. Устанавливаем 80 порт как HTTP Port, 443 порт как HTTPS Port.

Применяем настройки.

Ждём загрузки.

Готово. Теперь на роутере нежно сделать переадресация входящих соединения на порты Nginx Proxy Manager.

Посмотрим что поучилось.

Сайт работает на HTTP порту. Добавим SSL.

Подключаем SSL сертификат от Let's Encrypt в настройках хоста Nginx Proxy Manager.

Сертификат выпустился.

Сайт заработал на HTTPS порту. Автоматически применилась переадресация с HTTP на HTTPS.
Дальше я накидал ещё доменов. У меня есть и на кириллице. С кириллицей работает криво, нужно сначала добавить домен в Punycode, выпустить сертификат. Затем дополнить его кириллицей.
В итоге всё заработало. Все сайты на домашнем хостинге поднялись. Это ещё не конец истории, но продолжим в следующий раз.
Проксируй с нами.
Проксируй как мы.
Проксируй лучше нас.
