Eu tenho um site de tráfego muito baixo rodando no nginx, com 4 trabalhadores, 1024 conexões cada.
A cada várias horas, começo a ver no log de erros "1024 worker_connections not be enough" e meu site fica mais lento / torna-se flakey. Uma reinicialização do nginx resolve o problema completamente pelas próximas horas.
Claramente algo estranho está acontecendo, não há como eu atender 4k usuários simultâneos do meu aplicativo.
Além de observar o log de acesso (que parece normal), existe uma maneira de observar com mais detalhes o que o nginx está fazendo?
Existe alguma combinação de configuração notória que pode resultar em conexões antigas sendo mantidas abertas e não fechadas?
Obrigado.
editar isso parece errado
# lsof |grep nginx |grep CLOSE_WAIT |wc -l
1271
Respostas:
Sem passagem de proxy / proxy reverso
Com proxy reverso
2 é porque você abre uma conexão com o que você está proxy
X é, no entanto, muitas conexões simultâneas que esses clientes fazem para você
Para ver quais conexões estão por aí, você pode executar
lsof -i :PORT
. Ele mostrará todas as conexões abertas ao nginx e seu estado.fonte