Marzban фиксики пришли с NPM
NPM использую для создания одной точки входа, которая в завимости от запроса редиректит трафик на другие сервера или контейнеры внутри сервера.
Я использую PROXMOX и LXC контейнеры
На картинке выше я примерно показал работу типичного использования NPM:
Сервер - например, proxmox имеет внутри себя несколько контейнеров.
"Общение" между контейнерами налажено через виртуальную сеть с CIDR 192.168.0.0/24. У каждого контейнера свой ip адрес.
Первая сеть - связь с внешним миром!
BR1 (внешняя сеть) и привязан IP адрес 188.177.30.11, а наружу торчит только 443 порт.
На этот IP адрес привязан домен example.com через панель CloudFlare.
А BR2 (внутренняя сеть) CIDR 192.168.0.0/24 (создана вручную через вкладку network в proxmox)
На CloudFlare мы получаем SSL сертификат и прописываем правила: 3 поддомена pg / api / sub идут на IP 188.177.30.11 , SSL enabled:
Описываем все три правила (ка кпример)
Внимание! Все 3 поддомена и IP адрес вымышлены!
Не забываем создать и скачать SSL сертификат! Состоит из 2 файлов (cert + key)
Установка NPM с помощью волшебного репозитория от TTECK:
https://tteck.github.io/Proxmox/
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nginxproxymanager.sh)"
Данную команду прописываем в консоль PROXMOX, а не в консоль LXC контейнера.
Контейнер автоматически создастся. Нам нужно лишь добавить нашу вторую виртуальную сеть BR2
Как NPM будет готов, открываем админу и настраиваем!
Имя сертификата, сертификат и ключик.
Можно юзать LetsEncrypt, если есть неприязнь к CloudFlare.
Далее, добавляем правила проксирования:
Если прилетает запрос на pg.example.com, то проксировать по HTTP на ip адрес 192.168.0.4 и порт 3306
Вебсокеты по желанию, если они используются.
Выбираем наш импортированный сертификат.
Именно с помощью него, трафик превращается из HTTPS (BR1) в HTTP (BR2)
Нажимаем сохранить! Правило проксирования готово.
В рамках MarzBan я добавил правило блокировать GET запросы на dashboard и api:
Данный гайд можно использовать в рамках DOCKER.
У докер есть свой внутренний bridge. Docker можно развернуть внутри KVM VPS. (у хостера читаем документацию о доступности виртуализации внутри VPS, не все разрешают)