kuberentes nginx入口websocket 502错误 --- 种类:入口 apiVersion:extensions/v1beta1 元数据: 姓名:xxx 名称空间:bob 注释: rancher.io/globalDNS.hostname:api-v2-xxx nginx.ingres.kubernetes.io/proxy-read-timeout:3600 nginx.ingres.kubernetes.io/proxy-send-timeout:3600 nginx.org/location-snippets:| 代理设置头主机$HOST; 代理设置头主机$Host; 代理集头X-Real-IP$remote\u addr; proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For; 代理集头X-Forwarded-Proto$方案; 代理\u传递\u请求\u头打开; proxy_http_版本1.0; 代理设置头升级$http\U升级; 代理设置头连接“升级”; 规格: 规则: -主机:api-v2-xxx.microsoft.com http: 路径: -路径:/ 后端: 服务名称:xxx servicePort:xxx api端口 -路径:/ws/ 后端: 服务名称:xxx servicePort:xxx ws-port --- 种类:服务 版本:v1 元数据: 姓名:xxx 名称空间:bob 规格: 选择器: com.microsoft/application.name:xxx 端口: -名称:xxx api端口 协议:TCP 港口:80 目标港:3010 -名称:xxx ws端口 协议:TCP 港口:81 目标端口:31255

kuberentes nginx入口websocket 502错误 --- 种类:入口 apiVersion:extensions/v1beta1 元数据: 姓名:xxx 名称空间:bob 注释: rancher.io/globalDNS.hostname:api-v2-xxx nginx.ingres.kubernetes.io/proxy-read-timeout:3600 nginx.ingres.kubernetes.io/proxy-send-timeout:3600 nginx.org/location-snippets:| 代理设置头主机$HOST; 代理设置头主机$Host; 代理集头X-Real-IP$remote\u addr; proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For; 代理集头X-Forwarded-Proto$方案; 代理\u传递\u请求\u头打开; proxy_http_版本1.0; 代理设置头升级$http\U升级; 代理设置头连接“升级”; 规格: 规则: -主机:api-v2-xxx.microsoft.com http: 路径: -路径:/ 后端: 服务名称:xxx servicePort:xxx api端口 -路径:/ws/ 后端: 服务名称:xxx servicePort:xxx ws-port --- 种类:服务 版本:v1 元数据: 姓名:xxx 名称空间:bob 规格: 选择器: com.microsoft/application.name:xxx 端口: -名称:xxx api端口 协议:TCP 港口:80 目标港:3010 -名称:xxx ws端口 协议:TCP 港口:81 目标端口:31255,kubernetes,kubernetes-ingress,nginx-ingress,Kubernetes,Kubernetes Ingress,Nginx Ingress,我试图让运行在端口31255上的websocket正常工作,但得到的只是502错误。nginx.org/location snippets是我在另一个服务器部署中成功使用的代码片段,在该部署中一切正常 我检查了docker,一切正常,端口暴露,k8s服务正在转发端口,唯一的问题是入口。我还在一个URL上尝试了两个路径,结果相同:/api/works,/ws/nots API端口工作,websocket不工作。当您将pod的ip直接定位到端口31255上时,是否会收到预期的响应curl:31255

我试图让运行在端口
31255
上的websocket正常工作,但得到的只是502错误。
nginx.org/location snippets
是我在另一个服务器部署中成功使用的代码片段,在该部署中一切正常

我检查了docker,一切正常,端口暴露,k8s服务正在转发端口,唯一的问题是入口。我还在一个URL上尝试了两个路径,结果相同:/api/works,/ws/nots


API端口工作,websocket不工作。

当您将pod的ip直接定位到端口31255上时,是否会收到预期的响应
curl:31255
另外,当您执行进入pod并尝试访问它时,是否会收到预期的响应
curl localhost:31255
@Howard\u Roark工作正常。我还使用了完全相同的设置,在单个实例上使用docker compose(没有Kubernetes)和由我制作的nginx配置,一切正常。有什么想法吗?我会尝试简化事情,并将入口规则更改为只临时路由到
/ws
,看看它是否有效,然后从那里开始。我还会查看您的nginx日志,看看您是否看到任何发送到
/ws
的请求。这就是我从干净简单的配置开始的地方。Nginx日志没有说什么。它没有到达Docker中的Nginx,您正在使用哪种类型的负载平衡器?你能检查一下它是否支持WebSocket吗?(例如,如果使用第3层[TCP/SSL]侦听器,AWS ELB仅适用于WebSocket)。