Por que 'multi_accept' 'off' é o padrão no Nginx?


17

Eu encontrei 'multi_accept' está 'off' como padrão no Nginx da seguinte maneira:

multi_accept

Respostas:


13

Provavelmente porque com ativado, todos os processos de trabalho estão ativos e tentam manipular todas as solicitações recebidas simultaneamente. Quando desativado, o Nginx decide qual processo filho deve lidar com a solicitação, um por um. Como o Nginx é muito eficiente nisso, isso provavelmente serve bem à maioria das pessoas. Alguns consideram um risco ativá-lo, pois isso pode inundar as conexões do trabalhador com solicitações. Suas configurações de TCP no nível do sistema operacional provavelmente também farão parte disso.


3
Eu tive a situação exata. Eu tentei descobrir o que os comandos automáticos worker_rlimit_nofile, worker_connections e worker_processes fazem. O Nginx é um proxy reverso para um aplicativo que aceita websockets. A configuração do Nginx permite 50 conexões para cada trabalhador. Quando tenho dois trabalhadores (portanto, 100 conexões devem ser estabelecidas) e o multi_accept está ativado, recebo um erro de que os websockets não podem ser criados (o trabalhador que já tem 50 conexões tenta ...). Quando o multi_accept está desativado, tudo funciona perfeitamente.
Hamburml
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.