Войти в IT
Для тех кто не сталкивался, 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.
После чего должны увидеть
По личному опыту знаю, что на некоторых хостингах никакими способами не удается сделать холодный ребут, и контейнеразция не запускается, в этом случае есть лайфхак, снова запускаем команду
/system/device-mode/update container=yes
после чего устанавливаем версию Testing
Версия может быть любой, но из ветки testing
После чего увидим
Также не забываем до установить пакет Container в RouterOS
Пропущу подробную настройку сети, т.к. инструкций полно в инете, вкратце –
1. создаем Bridge
2. навешиваем серый адрес с необходимой маской на созданный Bridge (например 172.16.38.1/24)
Приступим непосредственно к NginxProxyManager
Для начала создаем виртуальный интерфейс veth-npm и прописываем адрес/маску и шлюз, в нашем случае 172.16.38.3/24 со шлюзом 172.16.38.1 (не забываем добавить созданный интерфейс в ранее созданный Bridge)
Затем в настройках контейнеризации укажем откуда качать конейнеры
Где 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
Затем переходим в Container – Mounts и добавляем две точки монтирования
После чего задействуем их в нашем контейнере
После чего контейнер успешно запускаем, но работать он корректно не будет. а в логах будет ошибка
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