Por que o Nginx não pode reutilizar a conexão com o upstream enquanto atende solicitações sequenciais de clientes?

2

Como mencionado no link

It should be particularly noted that the keepalive directive does not limit the total number of connections to upstream servers that a Nginx worker process can open. The connections parameter should be set to a number small enough to let upstream servers process new incoming connections as well.

Eu quero entender se um novo cliente vem, por que eles não podem usar conexões keep-alive existentes?

O Nginx precisa criar uma nova conexão com o upstream toda vez que um novo cliente chegar?

    
por Aarti 04.07.2016 / 20:16

1 resposta

2

Acho que o que isso significa é que, se mais solicitações chegarem o número de conexões keep-alive disponíveis, então um novo ainda seria aberto.

Além disso, observe a frase anterior àquela que você cita no link :

The connections parameter sets the maximum number of idle keepalive connections to upstream servers that are preserved in the cache of each worker process. When this number is exceeded, the least recently used connections are closed.

Observe a parte "cada processo de trabalho". Eu imagino que se uma conexão (com uma nova solicitação de cliente) chegar a um processo de trabalho que já passou do número de conexões keepalive com um determinado servidor, ainda assim uma nova seria aberta, mesmo que algum outro funcionário os processos ainda têm algumas de suas conexões keepalive com o mesmo servidor upstream ainda ocioso.

Se você precisar de mais detalhes, provavelmente valerá a pena pesquisar em ngx_http_upstream_keepalive_module.c .

    
por 07.07.2016 / 17:08