Как опубликовать веб-сокет через трафик из докера - PullRequest
0 голосов
/ 06 апреля 2019

У меня в моем роутере работает traefik, я выполняю https-прокси для нескольких сайтов, эта часть работает нормально.

Проблема в том, что у меня есть один контейнер, который публикует только WSS (mosquitto), для моей домашней автоматизации, и я не могу заставить его работать.

В моем файле стека автоматизации у меня есть следующий раздел для mosquitto, из того, что я читал на разных страницах, мне просто нужно указать HTTPS в качестве протокола, поскольку он также охватывает WSS

  mqtt:
    deploy:
      restart_policy:
        condition: any
        delay: 5s
        max_attempts: 3
        window: 120s

      placement:
        constraints:
          - node.labels.mysensors==yes
      replicas: 1
    labels:
        - traefik.frontend.rule=Host:mqtt.mydomain.com
        - traefik.port=9001
        - traefik.docker.network=traefik-public
        - traefik.enable=true
        - traefik.redirectorservice.frontend.entryPoints=http
        - traefik.redirectorservice.frontend.redirect.entryPoint=https
        - traefik.frontend.whiteList.sourceRange=192.168.0.0/16
        - traefik.tags=traefik-public
        - traefik.webservice.frontend.entryPoints=https
    ports:
      - 1883:1883
    networks:
      - homeautomation
      - traefik-public
    volumes:
      - /opt/mosquitto:/mosquitto
    image: "eclipse-mosquitto:1.4.12"

На панели инструментов Traefik я вижу только другие открытые бэкэнды службы (https), а не WSS. Интересно, чего мне не хватает в моей конфигурации.

1 Ответ

0 голосов
/ 26 июля 2019

Добавьте метки:

- traefik.backend.loadbalancer.stickiness: "true"

Это позволит поддерживать wss-соединения

...