[踩坑] Nginx 配置 WebScoket 未配置 proxy_http_version 导致长连接变短连接
今天 搭建 Webscoket 服务, 测试 内网IP + 端口, 客户端连接没有任何问题.
运维同学配置了公网域名后, 测试 客户端连接 公网域名
你 4:27:10 |
问题是 我服务端 进到 onOpen 事件 想要主动回包给 客户端都做不到.$server->exist($fd) 返回的是false, 发现客户端行为不是长连接, 比较像短连接请求,更过分的是断连不挥手.
排除了一些可能后想到 是不是 运维的 Nginx 配置出错了.
server { |
发现缺少 proxy_http_version 1.1; 配置.
因为 nginx 默认配置 proxy_http_version 是 1.0 , HTTP协议中对长连接的支持是从1.1版本之后才有的, 所以Webscocket 用的时候至少要配置 1.1.
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Leon!
评论





