Solução para o erro interno 500 do servidor NGINX no cliente e no servidor.
Nginx (pronuncia-se Motor-XO ), um servidor web de código aberto lançado publicamente em outubro de 2004, também funciona como balanceador de carga, proxy reverso e cache HTTP. Sua popularidade e utilidade são evidentes na sua adoção por empresas de tecnologia de renome, como Microsoft, Google, Facebook, Twitter e Apple.
Significado do erro 500 Internal Server Error no Nginx
Assim como outros aplicativos ou servidores, o Nginx pode apresentar erros, que seu sistema de relatório de erros integrado consegue identificar. No entanto, o erro 500 Internal Server Error é uma situação peculiar. Esse erro também ocorre em diversos servidores web, como Apache e IIS.
O erro 500 é um código de status HTTP que indica um problema no servidor cuja causa raiz não foi claramente identificada. Ao contrário de outros códigos de status HTTP, como 403 (Proibido) ou 404 (Não encontrado), ele não fornece nenhuma pista sobre a possível causa.
Como corrigir o erro 500 no Nginx a partir do lado do cliente?
Este código de erro indica um problema no servidor que geralmente pode ser resolvido no próprio servidor. No entanto, em casos raros, seu navegador pode contribuir para o problema criando uma solicitação que o servidor não consegue processar.
Para verificar se o navegador está causando o problema, abra o site em um navegador diferente, em um dispositivo diferente e em uma rede diferente. Se funcionar corretamente, limpe o cache/dados do navegador original e certifique-se de que não haja extensões do navegador causando o problema.
Se o site Nginx ainda estiver exibindo o erro 500, entre em contato com o administrador do servidor para resolver o problema.
Como corrigir o erro 500 do Nginx no lado do servidor?
Esse erro pode ser causado por um simples erro de sintaxe ou por um problema no aplicativo de backend. Como o erro não revela a causa raiz, a solução pode ser desafiadora. No entanto, não se preocupe, a abordagem sistemática que discutiremos a seguir pode resolver o problema.
1. Verifique se há sobrecarga no servidor
Se o seu servidor estiver sobrecarregado, ele poderá exibir um erro interno 500 devido à insuficiência de recursos para tarefas essenciais. Verifique o uso da CPU, o uso da memória e a disponibilidade de espaço em disco usando os comandos Free, Top ou HTop. A captura de tela abaixo mostra a saída após a execução do comando top.
Se o servidor estiver sobrecarregado, adicionar mais recursos deve resolver o erro 500 do Nginx.
2. Verificando a sintaxe da composição
O motivo mais comum para um erro 500 no Nginx é a configuração incorreta do servidor devido a um erro de sintaxe na configuração.
Para corrigir isso, revise os arquivos de configuração do Nginx e verifique cuidadosamente a sintaxe em busca de erros ou diretivas mal posicionadas.
Em seguida, revise seus arquivos de configuração do Nginx em busca de erros de sintaxe ou diretivas mal posicionadas. Use comandos como `nginx -t` ou `nginx -t -c /caminho/para/nginx.conf` para verificar a sintaxe e identificar quaisquer erros. Execute os seguintes comandos no terminal para detectar erros:
cd /etc/nginx/sites-available nginx -t
Você também pode usar o seguinte:
nginx -t -c /caminho/para/nginx.conf
Se forem detectados erros de sintaxe, corrija-os e faça o seguinte para reiniciar/recarregar o Nginx:
sudo service nginx restart nginx -s reload
Em alguns casos, pode ser necessário modificar o arquivo de configuração conforme mostrado abaixo:
try_files com try_files $uri =404
أو
try_files $uri $uri/ /index.html; with try_files $uri/ $uri /index.php?$query_string;
3. Verificação dos registros do servidor
Quando o Nginx gera um erro 500, ele também cria uma entrada no log de erros interno, que pode indicar a causa raiz do erro. Os logs do servidor geralmente estão localizados em:
/var/log/nginx/error.log
Em uma distribuição Linux, faça o seguinte para abrir o log do servidor:
cd /var/log/nginx cat error.log
Na página resultante, você pode analisar quaisquer indicadores da causa raiz. Por exemplo, veja a imagem abaixo:
Isso indica que o servidor não conseguiu estabelecer uma conexão SSL/TLS com o cliente devido a um problema com o certificado SSL. Após identificar o problema nos registros, você pode pesquisar possíveis causas e soluções online.
Se você não conseguir abrir o registro devido a um erro de "permissão negada" para a pasta, modifique o arquivo Nginx.conf substituindo "user www-data" por "user root". Após salvar o arquivo, reinicie o Nginx e tente abrir o registro novamente.
4. Desative temporariamente o Cloudflare ou serviços similares.
Se você estiver usando o Cloudflare ou um serviço similar em seu servidor e ele não estiver configurado corretamente ou estiver em conflito com atualizações recentes, desativá-lo temporariamente pode ajudar a diagnosticar o problema.
- Vamos para Painel de controle do Cloudflare E entre com suas credenciais.
- Vamos para Visão geral (Visão geral) e expandir Avançado (Configurações avançadas).
- toque em Pausar o site (Pause o site) e confirme. Se o seu provedor de hospedagem tiver integrações com o Cloudflare, certifique-se de desativá-las também.
- Certifique-se de que os endereços IP do site estejam corretos e verifique se o erro interno 500 do servidor Nginx foi resolvido. Lembre-se de verificar as versões HTTP e HTTPS do site.
5. Verificar certificados do servidor
Se algum dos seus certificados expirou ou se tornou inválido nas suas configurações atuais, isso certamente causará um erro no servidor interno.
- Configure o Nginx para usar endereço de IP Para o seu site, não para o nome de domínio.
- Desabilitar Verificação SSL No parâmetro proxy_pass, adicione o certificado autoassinado. Você pode criar um no painel do Cloudflare (SSL > Certificados do Cliente).
- Verifique se o servidor está funcionando corretamente. Caso esteja, entre em contato com a autoridade certificadora ou verifique suas configurações para identificar quaisquer configurações de certificado incorretas.
6. Verifique se há erros nos aplicativos de backend.
Se o Nginx redirecionar as solicitações do cliente para outro serviço que não executar corretamente, ocorrerá um erro 500. Por exemplo, se o servidor redirecionar as solicitações do cliente para um aplicativo de backend, como o NodeJS, e o aplicativo não funcionar corretamente, isso resultará no erro mencionado.
Lembre-se: se os registros do servidor não apresentarem erros, isso geralmente indica um problema no servidor.
Para resolver esse problema, verifique os logs da aplicação de backend em busca de erros ou exceções. Por exemplo, no WordPress, você encontrará os logs do NodeJS no seguinte caminho:
/var/www/ .com/logs/error.log
7. Permissões de arquivo insuficientes
Se o servidor Nginx não tiver as permissões necessárias para acessar ou executar um arquivo, isso resultará em um erro 500. Por exemplo, um erro interno do servidor ocorrerá em um site WordPress se o servidor Nginx não conseguir acessar ou servir arquivos PHP ou HTML da pasta public_html.
Para corrigir isso, você pode modificar as permissões necessárias do Nginx nos arquivos ou diretórios que o servidor acessa usando o comando chmodGeralmente, o valor é 755 para diretórios e 644 para arquivos.
8. Verificar a compatibilidade dos complementos
Os plugins desempenham um papel crucial na melhoria das capacidades do servidor. No entanto, plugins que não funcionam corretamente, estão desatualizados ou foram atualizados em excesso podem causar erros internos no servidor. Por exemplo, uma atualização do WordPress pode interromper a funcionalidade do seu site, pois muitos plugins se tornam incompatíveis até serem atualizados.
Para resolver esse problema, certifique-se de que cada adição Compatível Com o software do servidor e outros complementos. Embora possa parecer tedioso, vale a pena o esforço. Como alternativa, tente desativar todos os complementos para ver se isso resolve o erro.
Se você atualizou recentemente o software do seu servidor, tente Retorna Reverta para a versão anterior (se possível) para verificar se o erro foi resolvido. Isso confirmará se a atualização estava causando o problema. Você pode adiar a atualização do software até que todos os complementos sejam confirmados como compatíveis.
9. Verifique se há scripts defeituosos
Assim como os plugins, os scripts são cruciais para certas funções de um site. Um script corrompido, desatualizado ou incompatível pode causar um erro interno no servidor.
Você pode resolver este problema por Desativar scripts Verifique o servidor Nginx. Se estiver funcionando corretamente, revise os scripts e tente identificar quais estão causando o problema.
10. Aumente o valor de tempo limite do servidor.
Se o tempo limite do servidor for menor que o tempo de resposta do Nginx, você encontrará um erro interno do servidor. Da mesma forma, se a solicitação ao servidor demorar mais que o tempo de resposta do Nginx, o problema ocorrerá.
Aumentar o valor de tempo limite do servidor deve resolver o problema. Você pode encontrar instruções específicas online.
11. Certifique-se de que todos os processos de redirecionamento estejam funcionando.
Certifique-se de que todos os processos de redirecionamento estejam funcionando corretamente quando o Nginx estiver atuando como servidor proxy. Se o servidor não conseguir redirecionar a solicitação do cliente para o servidor de backend, ocorrerá um erro 500.
Desative temporariamente todos os redirecionamentos. Para verificar se o funcionamento está correto, caso seja bem-sucedido, reinicie cada processo individualmente para identificar o redirecionamento com falha. Uma vez identificado, pesquise online possíveis causas e soluções para essa falha específica de redirecionamento.
12. Usando PHP com Nginx
O Nginx não oferece suporte nativo ao PHP; portanto, configurações incorretas do PHP com o Nginx podem levar a um erro interno do servidor.
Para resolver esse problema, verifique a integração do PHP com o Nginx. Se a exibição de erros do PHP estiver desativada, o servidor retornará um erro 500 do Nginx quando o PHP encontrar um problema. Habilitar a exibição de erros do PHP pode simplificar a solução de problemas.
No CentOS 7, faça o seguinte:
tail -f /var/log/php-fpm/www-error.log
Em vez disso, vá para
/etc/php.ini
E mudar
display_errors = Desligado
إلى
exibir_erros = Ligado
Você também pode procurar um processador PHP melhor (como o PHP-FPM) e habilitar o cache do Nginx.
13. Adote uma abordagem minimalista.
Se você ainda não conseguir resolver o erro 500, pode usar a abordagem minimalista para solucionar o problema.
- criada Cópia de segurança No seu site, substitua o conteúdo por um arquivo index.html simples contendo algum texto sem formatação.
- Verifique se o site Trabalho Comece adicionando rotas, funcionalidades, serviços, plugins, scripts, etc., um por um.
- Certifique-se de testar o site após cada etapa e verifique se o problema persiste.
- Devolva o conteúdo ao seu site e verifique se ele é a causa do problema.
- Depois de encontrar o elemento que está causando o problema, você pode corrigi-lo pesquisando na internet.
Como evitar que o erro 500 do servidor Nginx se repita no futuro
Você pode seguir os seguintes passos para evitar que o erro 500 do Nginx ocorra novamente:
- Realizar manutenção regular do servidor.
- Certifique-se de que o código e o conteúdo do site (imagens, vídeos, etc.) estejam otimizados para as suas configurações.
- Crie uma Rede de Distribuição de Conteúdo (CDN) para disponibilizar o site através do seu cache.
Se você tiver alguma dúvida, estamos disponíveis na seção de comentários.
Comentários estão fechados.