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-close-prematurely-connection-while-sending-to-client-in-nginx

聲稱路由器故障的人的部落格 [2018]:https://swazzy.com/2018/04/29/evasive-errors

相關內容