如何使用Traefik for WebSocket后端

时间:2017-06-08 08:15:02

标签: websocket reverse-proxy traefik sticky-session

我正在尝试为一个WebSocket应用程序配置Traefik,我只是尝试在docker上使用一个简单的WS应用程序:https://hub.docker.com/r/jmalloc/echo-server/

为了测试它我使用的是Chrome SimpleWebSocketClient,所以如果我使用IP:应用程序的端口,它可以正常工作。如果我添加Traefik DNS它失败了,我只是尝试使用其他WS服务器和客户端也失败了,所以它将是Traefik。

我只试用Traefik版本:

-v1.3.0/raclette
-v1.2.3/morbier

这些是我的Traefik规则:

[backends.ws-test-backend]
    [backends.ws-test-backend.LoadBalancer]
      method = "drr"
    [backends.ws-test-backend.servers.server1]
    url = "ws://172.16.8.231:3000"

[frontends.ws-test-frontend]
  backend = "ws-test-backend"
  passHostHeader = true
  entrypoints = ["http","https","ws", "wss"]
    [frontends.ws-test-frontend.routes.manager]
    rule = "Host:ws-test.ikcloud.ikerlan.es"

有什么不对的? 这样做的推荐反向代理?

1 个答案:

答案 0 :(得分:0)

您需要为ws连接启用粘性会话,否则它将一直重新连接。

[backends]
  [backends.backend1]
    # Enable sticky session
    [backends.backend1.loadbalancer.stickiness]