Nginx UDP代理共享连接繁忙

Nginx UDP代理共享连接繁忙

我们通过 Nginx 反向代理为游戏服务器代理 UDP 数据包。由于 Nginx 无法处理请求,客户端经常超时。最初它运行正常,但当更多客户端连接到游戏服务器(40-50)时,我们遇到了问题。

我们怎样才能让 Nginx 处理它?

这是代理设置

stream {
    upstream backend {
        server [server-ip]:[port];
    }

    server {
        listen [port];
        proxy_pass backend;
    }

    server {
        listen [port] udp reuseport;
        proxy_pass backend;
    }
}

我们的错误日志充满了这样的错误:

2023/02/18 12:40:29 [alert] 3951459#3951459: *5777636 shared connection is busy while proxying and sending to client, udp client: [client-ip], server: 0.0.0.0:[port], upstream: "[server-ip]:[port]", bytes from/to client:1684904/1724744, bytes from/to upstream:1725538/1684904

如何配置 Nginx 来处理这些 UDP 数据包?

答案1

尝试这个:

流 { 上游后端 { 服务器 [服务器 IP]:[端口]; }

server {
    listen [port];
    proxy_pass backend;
}

server {
    listen [port] udp reuseport;
    proxy_pass backend;
    proxy_bind $remote_addr transparent;
}

}

答案2

这似乎是一个老问题,而且很少见。Nginx 通常可以很好地处理 UDP 数据包(对我来说,多年来一直运行良好),但我目前遇到了同样的问题。有人说这是代理缓冲区太小或其他代理配置造成的。有人说这是路由器故障。

更多信息和配置可尝试[最新答案 2015]:https://stackoverflow.com/questions/4804822/client-closed-prematurely-connection-while-sending-to-client-in-nginx

说这是路由器故障的人的博客 [2018]:https://swazzy.com/2018/04/29/evasive-errors

相关内容