You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx代理SignalR/WebSocket时出现连接异常及503错误的排查求助

Nginx代理SignalR/WebSocket时出现连接异常及503错误的排查求助

各位好!最近碰到个棘手的问题,想请有经验的大佬帮忙分析下:我们有个打印应用跑在Nginx反向代理后面,自从迁移到一台装了新版本Nginx的代理服务器后,客户断断续续反馈两类异常,我对比了应用日志和Nginx日志,发现异常和日志里的请求是对应的,先把细节贴出来:


客户侧遇到的异常信息

第一个是WebSocket连接关闭时的异常:

System.Net.WebSockets.WebSocketException (0x80004005): The remote party closed the WebSocket connection without completing the close handshake.
at Domain.Printing.Service.Library.SignalRClient.Execute()

第二个是连接失败的503服务不可用异常:

System.Net.WebSockets.WebSocketException (0x80004005): Unable to connect to the remote server ---> System.Net.WebException: The remote server returned an error: (503) Server Unavailable.


对应时间点的应用日志记录

2024-06-17 08:58:08 10.24.11.16 POST /printing/SignalR/signalr/abort clientProtocol=2.1&transport=webSockets&connectionData=[%7B%22Name%22:%22IntegratedPrintingHub%22%7D]&connectionToken=mLUYvm 80 - 10.24.11.15 SignalR.Client.NetStandard/2.4.1.0+(Microsoft+Windows+NT+6.2.9200.0) - 200 0 0 0

Nginx错误日志片段(与应用日志时间点对应,内容截断)

2024/06/17 08:58:08 [error] ... upstream prematurely closed connection while reading response header from upstream, client: 10.24.11.15, request: "POST /printing/SignalR/signalr/abort?clientProtocol=2.1&transport=webSockets&connectionData=[%7B%22Name%22:%22IntegratedPrintingHub%22%7D]&connectionToken=mLUYvm HTTP/1.1"

我自己核对了时间线,异常出现的时间和日志里的abort请求完全对上了。之前在旧的Nginx代理服务器上从来没遇到过这类问题,换成新版本Nginx后才断断续续出现,所以我怀疑是新版本Nginx的默认配置变化或者和SignalR/WebSocket的兼容性问题。

想请教各位大佬几个问题:

  • 有没有遇到过新版本Nginx代理SignalR时出现这类WebSocket连接异常和503的情况?
  • 从现有日志来看,我应该优先排查哪些Nginx配置项?比如WebSocket的超时设置、代理缓冲、连接池大小这些?
  • 应用日志里abort请求返回了200,但Nginx却报上游连接提前关闭,这种情况有没有什么调试或者排查的方向?

麻烦各位帮忙出出主意,实在是头疼这个间歇性的问题,谢谢大家了!

备注:内容来源于stack exchange,提问作者Rickard Olsson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 11:59:40