我编写了一个使用 TCP 双向传输数据的 API。在我的本地设置中,它运行良好。但是当我转到生产环境时,它从未到达端点。
生产服务器使用 ELB 对 EC2 实例进行负载平衡,并且全部由 cloud flare 负责。
一开始,我甚至看不到它命中了 NGINX 日志,所以我绕过 CloudFlare 并直接命中 EC2 IP 地址。这确实导致尝试显示在访问日志中,但它们都立即像这样 499。
[16/Sep/2024:03:13:50 +0000] “POST /api/user_sync HTTP/1.1” 499 0 “-” “MYAPP/1.0.6 CFNetwork/1494.0.7 Darwin/23.6.0”
499 似乎表示客户端中止了连接,但我可以在应用程序中看到,直到客户端超时,与服务器的连接才会关闭。但 499 会立即出现在 NGINX 访问日志中。所以就像它立即将其关闭一样。
不幸的是,我对 NGINX、负载平衡或网站没有太多经验,因此任何帮助都将不胜感激。
我确实发现一些帖子中其他用户也遇到了类似的问题,但对于他们来说,499 要么在每次 API 调用时发生,要么在很长一段时间后发生。然而,这种情况每次都会发生,并且只发生在这个特定的端点上。