Pourquoi Nginx peut-il réutiliser la connection en amont tout en servant les requests séquentielles des clients?

Comme mentionné dans http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive

Il convient de noter en particulier que la directive keepalive ne limite pas le nombre total de connections aux servers amont qu'un process de travail Nginx peut ouvrir. Le paramètre de connection doit être défini sur un nombre suffisamment petit pour permettre aux servers en amont de traiter de nouvelles connections entrantes.

Je veux comprendre si un nouveau client vient, pourquoi ne peuvent-ils pas utiliser les connections keep-alive existantes?

Est-ce que Nginx doit créer une nouvelle connection avec l'amont chaque fois qu'un nouveau client vient?

Je pense que ce que cela signifie, c'est que si plus de requests arrivent que le nombre de connections keep-alive disponibles, alors une nouvelle serait encore ouverte.

De plus, notez la phrase précédente à celle que vous citons à partir de http://nginx.org/r/keepalive :

Le paramètre de connection définit le nombre maximal de connections keepalive inactives aux servers en amont conservés dans le cache de chaque process de travail. Lorsque ce nombre est dépassé, les connections les less récemment utilisées sont fermées.

Notez la partie "chaque process de travail". J'imagine que si une connection (avec une nouvelle request de client) arrive à un process de travail qui dépasse déjà son nombre de connections keepalive avec un server donné, un nouveau serait toujours ouvert même si un autre travailleur les process contiennent encore certaines de leurs connections keepalive avec le même server en amont encore inactif.

Si vous avez besoin de plus de détails, il sera probablement utile de creuser dans ngx_http_upstream_keepalive_module.c .