【发布时间】:2017-12-15 06:03:26
【问题描述】:
当客户端尝试通过wss:// 请求连接我们的入口定义端点时,应用程序返回 400 错误请求,根据 socket.io 文档,这是由于 nginx 等负载平衡代理删除了丢失的标头。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.org/websocket-services: service-name
spec:
tls:
- hosts:
- www.myhost.com
rules:
- host: www.myhost.com
http:
paths:
- path: /
backend:
serviceName: service-name
servicePort: 80
从 IBM 提供的入口控制器中的日志来看,它似乎是这个 nginx ingress controller 的一个分支。这表示注释 nginx.org/websocket-services 通过向生成的 nginx conf 添加指令以传递所需的标头来增加对 websockets 的支持。我们已经按照上述方法进行了尝试,但无济于事。
有没有人成功地使这个注释工作? 添加到生成的 nginx conf 的任何解决方法?
是否有任何 IBM 人员知道此功能是否是有意从分支中删除的?如果有什么方法可以在 IBM 版本的 Kubernetes 中添加对 websockets 的支持?
【问题讨论】:
标签: nginx websocket ibm-cloud kubernetes