Привет! Пытаюсь решить задачку, но даже не знаю как правильно погуглить.
Дано: домашний сервачок на OpenMediaVault (Debian под капотом, но не думаю, что это имеет значение), назовем его nas.local. На нем крутится пачка сервисов: сама морда OMV и SSH, SMB, Plex, Miniflux, Gitea и прочая — что-то в Docker, что-то прямо так — каждое на своём порту прямо на nas.local.
Чего хочу: сделать красиво. Хочу, чтобы каждый сервис болтался на своём поддомене, при этом порты самом nas.local не торчали. И если случай «1 сервис — 1 порт» нормально закрывается через reverse proxy, то, например, у Gitea торчат два порта, а у Plex — вообще клиника.
В идеальном мире хочу сделать примерно так:
nas.local:22 — просто SSH
omv.nas.local:80 -> морда OMV
omv.nas.local:445 -> OMV SMB
gitea.nas.local:80 -> docker/gitea:3000
gitea.nas.local:22 -> docker/gitea:22
miniflux.nas.local:80 -> docker/miniflux:8080
plex.nas.local:32400 -> docker/plex:32400
plex.nas.local:1900 -> docker/plex:1900
plex.nas.local:5353 -> docker/plex:5353
plex.nas.local:8324 -> docker/plex:8324
plex.nas.local:32410,32412,32413,32414 -> docker/plex:32410,32412,32413,32414
plex.nas.local:32469 -> docker/plex:32469
...и прочая, и прочая.
Что я уже пробовал сделать:
- Зафигачил А-зону .*\.nas\.local на своём микротике.
- Экспериментировал с Traefik и ReProxy.
Как писал выше, с одним портом всё проходит хорошо, но как мапить несколько портов, да еще и скрывать их «снаружи» — непонятно.
Дополнительные, но необязательные хотелки:
- nas.local:32400 не должен вести в Plex.
- Автодисковеринг для докер-контейнеров.
- Не ломать автодисковеринг клиентов (чтобы клиент Plex-a находил своё хозяйство в сети).
- Покрыть всё, что можно, SSL.