websocket - 如何在 Traefik 中代理 WebSockets?

标签 websocket traefik upsource

我正在尝试设置 Upsource 以在 Traefik 后面工作:https://www.jetbrains.com/help/upsource/proxy-configuration.html

traefik 正在监听端口 8008 和 8443(因为 80/443 将用于另一个端口):

--entryPoints='Name:http Address::8008 Redirect.EntryPoint:https' --entryPoints='Name:https Address::8443 TLS'

docker 标签:
labels:
  traefik.backend: upsource
  traefik.enable: "true"
  traefik.port: "8080"
  traefik.frontend.rule: "Host:review.domain.com"

conf/internal/bundle.properties , base-url配置如下:
base-url=https\://review.domain.com\:8443/

问题:
time="2017-09-20T03:23:59Z" level=error msg="Error getting ACME certificates [review.domain.com] : Cannot obtain certificates map[review.domain.com:acme: Error 400 - urn:acme:error:connection - Connection refused
Error Detail:
        Validation for review.domain.com:443

为什么它验证端口 443 而不是 8443?

此外,在 Nginx 中代理 WebSockets:
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass http://upsourcemachine.domain.local:1111;
        proxy_pass_header Sec-Websocket-Extensions;

你能确认 Traefik 支持 WebSockets 吗?如果是这样,如何配置?

最佳答案

Traefik 处理 websocket,您不需要为此进行任何特定配置。

您的问题似乎更多地与 Let's Encrypt 中的挑战有关。
Let's Encrypt 不会在默认端口以外的其他端口上处理 TLS 挑战,而 Traefik 中的默认挑战是 TLS :(

所以你需要配置 Traefik 来使用 DNS Challenge
https://docs.traefik.io/configuration/acme/

关于websocket - 如何在 Traefik 中代理 WebSockets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46313356/

相关文章:

prometheus - 带有 Prometheus 的 Traefik V2.0 指标

ssl - 在 Traefik 1.5.0-rc5 中获取新的 httpChallenge 的问题

github - 与 Gitlab 集成的 Upsource

upsource - 是否可以将代码审查分配给 JetBrains Upsource 中的随机审查者?

ssl - 获取ssl证书的问题

webpack - Angular CLI 代理 : Redirect unsecured local websocket to secured remote websocket

concurrency - (websocket) Golang 同步数据锁定失败 - Broken Pipe

node.js - 如何使用 sockjs 创建私有(private)聊天室?

ruby - 如何在 em-websocket 中广播或建立连接?