Общее соединение прокси-сервера Nginx UDP занято

Общее соединение прокси-сервера Nginx UDP занято

Мы проксируем UDP-пакеты для игрового сервера через обратный прокси-сервер Nginx. Клиенты очень часто выходят из строя, потому что 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

Связанный контент