2025-01-22

Для тех кто не сталкивался, Nginx Proxy Manager довольно удобный инструмент Reverse Proxy с веб управлением и автоматическим выпуском и продлением LetsEncrypt ssl сертификатов, простыми словами когда у вас мало или один ip,а доменов много.

Mikrotik 7+ версии умеет запускать контейнеры Docker, этим и воспользуемся

Для начала нужно проверить, включена ли контейнеризация командой

 /system/device-mode/print

Если видим 

хекс

То Включаем контейнеразцию командой 

/system/device-mode/update container=yes

После чего будет 5 минут чтоб перезагрузить микротик холодным ребутом (выдернуть провод из микротика), если CHR то на хостинге где-то в личном кабинете искать Cold Reboot. 

После чего должны увидеть 

хекс2

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

/system/device-mode/update container=yes

после чего устанавливаем версию Testing

хекс3

Версия может быть любой, но из ветки testing

После чего увидим 

хекс4

Также не забываем до установить пакет Container в RouterOS

Пропущу подробную настройку сети, т.к. инструкций полно в инете, вкратце – 

1. создаем Bridge

2. навешиваем серый адрес с необходимой маской на созданный Bridge (например 172.16.38.1/24)

 

хекс10

Приступим непосредственно к NginxProxyManager

Для начала создаем виртуальный интерфейс veth-npm и прописываем адрес/маску и шлюз, в нашем случае 172.16.38.3/24 со шлюзом 172.16.38.1 (не забываем добавить созданный интерфейс в ранее созданный Bridge)

Затем в настройках контейнеризации укажем откуда качать конейнеры

хекс6

Где RAM High – максимальное количество ОЗУ для контейнеров, Registry URL – https://registry-1.docker.io/, Tmp dir – директория для временных файлов

После чего переходим в терминал и вводим

/container/ add remote-image=jc21/nginx-proxy-manager:latest interface=veth-npm root-dir=disk1/ubuntu1 logging=yes

Котейнер добавится, но при попытке запуска он будет переходить в статус Stopped
Все из-за того что образ просит две смонтированных директории, чтож добавим их
Переходим в Files в Winbox  и создаем два каталога Files -> File -> + -> Directory с названиями data и letsencrypt
 
хекс7

Затем переходим в Container – Mounts и добавляем две точки монтирования 

хекс8

После чего задействуем их в нашем контейнере

хекс9

После чего контейнер успешно запускаем, но работать он корректно не будет. а в логах будет ошибка

nginx: [emerg] a duplicate default server for 0.0.0.0:81 in /etc/nginx/conf.d/production.conf:3

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

container/shell 0

Попадем внутрь контейнера, и там пишем 

rm /etc/nginx/conf.d/dev.conf -y

Перезапускаем контейнер и пользуемся NginxProxyManager

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *