diff --git a/docs/docker/traefik/tcp-routes.md b/docs/docker/traefik/tcp-routes.md new file mode 100644 index 0000000..9fed8a7 --- /dev/null +++ b/docs/docker/traefik/tcp-routes.md @@ -0,0 +1,33 @@ +# TCP Routes + +Начинав со скромной установки домашней лабы на базе самосборного ПК на 4 диска и хостинга на нем Plex, я за 5 лет начучился поднимать с запускать различные полезные вещи для дома. +Сейчас у меня есть несколько доменов с различным сервисами. Где то год назад я понял, что надо разделать сервисы по типу. Но была проблема - поскульку сервисы находятся на 3 и более разных хостах докера, то прописывать правила в Traefik нужно было на главном. Это было как бы норм, но не совсем удобно. +Поэтому я начал изучать, как можно было бы вынести конфиги и сам Траефик на разные хосты. И решение это TCP Route. + +По сути, это TCP-маршрутизатор делающий следующее: если есть запросы, адресованные домен2 или его субдоменам, то запрос передается второму экземпляру Traefik, который прослушивает адрес 192.168.100.254:443 на другом моем хосте. + +![TCP Route](../../images/docker/traefik-tcp-routes.png) + +Для того, чтобы реализовать это, нужно создать файл yml в папке rules с определением route TCP: + +```yml title="tcp-domain2.yml" +tcp: + routers: + tcp-domain2-rtr: + entryPoints: + - "https" + rule: "HostSNIRegexp(`domain2.com`, `{subdomain:[a-z]+}.domain2.com`)" + service: tcp-domain2-svc + tls: + passthrough: true + services: + tcp-domain2-svc: + loadBalancer: + servers: + - address: "192.168.100.254:443" +``` + +Правда все равно есть большое НО: + +!!! warning + Если основной экземпляр Traefik не работает, то и TCP Route работать тоже не будет! \ No newline at end of file diff --git a/docs/images/docker/traefik-tcp-routes.png b/docs/images/docker/traefik-tcp-routes.png new file mode 100644 index 0000000..87875d4 Binary files /dev/null and b/docs/images/docker/traefik-tcp-routes.png differ diff --git a/mkdocs.yml b/mkdocs.yml index c278b72..4395acf 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -11,7 +11,9 @@ nav: - Установка: docker.md - Безопасность: docker/security.md - В начале: - - Traefik: docker/traefik.md + - Traefik: + - docker/traefik.md + - TCP Route: docker/traefik/tcp-routes.md - Traefik Forward Auth: docker/traefik-forward-auth.md - Сервисы: - Linx Server: docker/linx-server.md @@ -141,7 +143,6 @@ nav: - Блог: - Blog: blog/index.md - theme: name: material theme_dir: overrides