Recentemente, tivemos cerca de 500 do nginx, que de alguma forma não foram registrados (temos capturas de tela, mas nada nos registros). Isso é estranho por si só, porque geralmente erros aparecem lá. Independentemente disso, estou me perguntando se existe algo como um tamanho de pool de conexão que, se atingido ao máximo, resultaria em 500? Nós o correlacionamos potencialmente a um aumento recente no tráfego, mas não é conclusivo.
Alguém tem alguma idéia de como começar a abordar esse problema?
error_log
. Publique também seu arquivo de configuração.Respostas:
Usamos uma combinação de formatos de log no nginx e no lmon para capturar coisas assim. Um formato de log NGINX como:
Ele captura muitas informações úteis de diagnóstico, como o servidor upstream que tratou da solicitação, além de colocar o status na frente, para facilitar a leitura, mesmo que os logs estejam rolando rapidamente.
Usamos o LMON para assistir a esses logs e, em seguida, nos alertar (pagers / email) se houver erros, como 500s, 503s, 400s, nos logs:
http://www.bsdconsulting.no/tools/lmon-README
Isso pode ajudá-lo a ser alertado sobre um problema que está acontecendo, que é o momento mais fácil para depurá-lo.
A outra coisa que você provavelmente deve considerar se ainda não o fez é que, por padrão, o nginx considera um 500 uma condição fatal e não tenta outro upstream. Se você tiver vários upstreams, poderá configurá-lo para usar outro se receber 500, ocultando a falha do usuário:
http://wiki.nginx.org/NginxHttpProxyModule#proxy_next_upstream
fonte
error_log $filename debug;
ativará o log de nível de depuração no log de erros - isso fornecerá muitos e muitos detalhes do status interno do nginx no momento do erro e, se compilado com --with-debug (que várias distribuições fazem por padrão) darei ainda mais.Esteja avisado de que o nível de "depuração" realmente gera muita saída, a ponto de você querer observar o espaço em disco ...
fonte
No meu caso, o arquivo conf não foi nomeado corretamente (era example.com em vez de example.com.conf) e não foi incluído. De alguma forma, isso não resultou em 'Bem-vindo ao nginx', mas em um erro HTTP 500 não registrado. Bem, na verdade, foi registrado, mas no arquivo de erro de um host virtual diferente que não pode funcionar com esse URL específico.
fonte