Как упоминалось в http: // nginx. org / en / docs / http / ngx_http_upstream_module.html # keepalive
Следует особо отметить, что директива keepalive не ограничивает общее количество подключений к вышестоящим серверам, которые может открыть рабочий процесс Nginx. Параметр соединений должен быть установлен на достаточно маленькое число, чтобы серверы вышестоящего потока также могли обрабатывать новые входящие соединения.
Я хочу понять, если приходит новый клиент, почему они не могут использовать существующие соединения keep-alive?
Нужно ли Nginx создавать новое соединение с восходящим потоком каждый раз, когда приходит новый клиент?
Я думаю, что это означает , что если поступит больше запросов, чем количество доступных поддерживающих соединений, то все равно будет открыто новое.
Кроме того, ,обратите внимание на предложение, предшествующее тому, которое вы цитируете из http://nginx.org/r/keepalive :
Параметр соединений устанавливает максимальное количество неактивных соединений keepalive с вышестоящими серверами, которые сохраняются в кеш каждого рабочего процесса. При превышении этого числа самые последние использованные соединения закрываются.
Обратите внимание на часть «каждый рабочий процесс». Я бы предположил, что если соединение (с новым клиентским запросом) входит в рабочий процесс, который уже прошел свое количество поддерживающих соединений с данным сервером, то новый все равно будет открыт, даже если какой-то другой рабочий у процессов все еще есть некоторые из своих соединений keepalive с тем же сервером восходящего потока, который все еще бездействует.
Если вам нужна дополнительная информация, вероятно, стоит покопаться в ngx_http_upstream_keepalive_module.c
.