Het oplossen van de interne NGINX-serverfout 500 voor client en server.

Nginx (uitgesproken als Motor-XDeze open-source webserver, die in oktober 2004 openbaar werd gemaakt, functioneert ook als load balancer, reverse proxy en HTTP-cache. De populariteit en bruikbaarheid ervan blijken uit het feit dat prominente technologiebedrijven zoals Microsoft, Google, Facebook, Twitter en Apple deze server hebben omarmd.

Nginx

Betekenis van 500 Internal Server Error in Nginx

Net als andere softwareapplicaties of servers kan Nginx fouten tegenkomen, die door het ingebouwde foutrapportagesysteem kunnen worden geïdentificeerd. De 500 Internal Server Error is echter een uniek geval. Deze fout treedt ook op bij diverse webservers, zoals Apache en IIS.

Nginx interne serverfout 500

Foutcode 500 is een HTTP-statuscode die wijst op een serverprobleem waarvan de oorzaak niet duidelijk is. In tegenstelling tot andere HTTP-statuscodes, zoals 403 (Forbidden) of 404 (Not Found), geeft deze geen aanwijzingen over de mogelijke oorzaak.

Hoe los ik foutcode 500 in Nginx op vanuit de clientzijde?

Deze foutcode duidt op een probleem aan de serverzijde dat meestal op de server zelf kan worden opgelost. In zeldzame gevallen kan uw browser echter bijdragen aan het probleem door een verzoek te genereren dat de server niet kan verwerken.

Om te controleren of de browser het probleem veroorzaakt, open je de website in een andere browser, op een ander apparaat en via een ander netwerk. Als het daar wel goed werkt, wis je de cache/gegevens van de oorspronkelijke browser en controleer je of er geen browserextensies zijn die het probleem veroorzaken.

Als de Nginx-website nog steeds foutcode 500 weergeeft, neem dan contact op met uw serverbeheerder om het probleem op te lossen.

Hoe los ik Nginx-fout 500 aan de serverkant op?

Deze fout kan het gevolg zijn van een simpele syntaxfout of een probleem met de backend-applicatie. Omdat de foutmelding de onderliggende oorzaak niet aangeeft, kan het oplossen ervan lastig zijn. Maar geen zorgen, de systematische aanpak die we hieronder bespreken, kan het probleem verhelpen.

1. Controleer op serveroverbelasting

Als uw server overbelast is, kan deze een interne 500-foutmelding weergeven vanwege onvoldoende resources voor essentiële taken. Controleer het CPU-gebruik, het geheugengebruik en de beschikbare schijfruimte met behulp van de commando's Free, Top of HTop. De onderstaande schermafbeelding toont de uitvoer na het uitvoeren van het commando top.

Serverresourceverificatie

Als de server overbelast is, zou het toevoegen van extra resources de Nginx 500-fout moeten oplossen.

2. De syntaxis van de compositie controleren

De meest voorkomende oorzaak van een 500-fout in Nginx is een onjuiste serverinstelling als gevolg van een syntaxfout in de configuratie.

Om dit op te lossen, moet je de Nginx-configuratiebestanden controleren en de syntaxis zorgvuldig nakijken op fouten of verkeerd geplaatste instructies.

Controleer vervolgens uw Nginx-configuratiebestanden op syntaxfouten of verkeerd geplaatste instructies. Gebruik commando's zoals `nginx -t` of `nginx -t -c /pad/naar/nginx.conf` om de syntax te controleren en eventuele fouten te identificeren. Voer de volgende commando's in de terminal uit om fouten op te sporen:

cd /etc/nginx/sites-available nginx -t

De syntaxis van de compositie controleren

Je kunt ook het volgende gebruiken:

nginx -t -c /pad/naar/nginx.conf

Als er syntaxfouten worden gedetecteerd, corrigeer deze dan en voer de volgende stappen uit om Nginx opnieuw te starten/laden:

sudo service nginx restart nginx -s reload

In sommige gevallen moet u mogelijk het configuratiebestand aanpassen zoals hieronder wordt weergegeven:

try_files met try_files $uri =404

أو

try_files $uri $uri/ /index.html; with try_files $uri/ $uri /index.php?$query_string;

3. Serverlogboeken controleren

Wanneer Nginx een 500-fout genereert, wordt er ook een vermelding in het interne foutenlogboek aangemaakt, wat de oorzaak van de fout kan aangeven. Serverlogboeken bevinden zich doorgaans op de volgende locaties:

/var/log/nginx/error.log

Op een Linux-distributie kunt u het serverlogboek als volgt openen:

cd /var/log/nginx cat error.log

Op de resulterende pagina kunt u alle aanwijzingen voor de onderliggende oorzaak bekijken. Zie bijvoorbeeld de afbeelding hieronder:

Serverlogboeken controleren

Dit geeft aan dat de server geen SSL/TLS-verbinding met de client kon maken vanwege een probleem met het SSL-certificaat. Nadat u het probleem in de logbestanden hebt vastgesteld, kunt u online zoeken naar mogelijke oorzaken en oplossingen.

Als u de registry niet kunt openen vanwege een foutmelding 'toegang geweigerd' voor de map, wijzig dan het bestand Nginx.conf door 'user www-data' te vervangen door 'user root'. Sla het bestand op, herstart Nginx en probeer de registry opnieuw te openen.

4. Schakel Cloudflare of vergelijkbare services tijdelijk uit.

Als je Cloudflare of een vergelijkbare service op je server gebruikt en deze niet correct is geconfigureerd of conflicteert met recente updates, kan het tijdelijk uitschakelen ervan helpen om het probleem te diagnosticeren.

  1. Ga naar Cloudflare-configuratiescherm Log in met uw inloggegevens.
  2. Ga naar Overzicht (Overzicht) en uitbreiden Geavanceerd (Geavanceerde instellingen).
  3. tik op Pauzeer de website (Pauzeer de site) en bevestig. Als je hostingprovider Cloudflare-integraties heeft, zorg er dan voor dat je die ook uitschakelt.
  4. Controleer of u de juiste IP-adressen voor de site hebt en of de interne serverfout Nginx 500 is opgelost. Vergeet niet om zowel de HTTP- als de HTTPS-versie van de site te controleren. CloudFlare uitschakelen op de website

5. Servercertificaten controleren

Als een van uw certificaten is verlopen of ongeldig is geworden in uw huidige instellingen, zal dit zeker een foutmelding op de interne server veroorzaken.

  1. Configureer Nginx om te gebruiken IK P Voor je website, niet voor de domeinnaam. Gebruik het IP-adres van de server in de Nginx-instellingen.
  2. Uitzetten SSL-verificatie Voeg in proxy_pass het zelfondertekende certificaat toe. Je kunt er een aanmaken in je Cloudflare-dashboard (SSL > Clientcertificaten).
  3. Controleer of de server correct functioneert. Zo ja, neem dan contact op met de certificeringsinstantie of controleer uw instellingen op onjuiste certificaatconfiguraties.

6. Controleer de backend-applicaties op fouten.

Als Nginx clientverzoeken doorstuurt naar een andere service die niet correct functioneert, veroorzaakt dit een 500-fout. Bijvoorbeeld, als de server clientverzoeken doorstuurt naar een backend-applicatie zoals NodeJS, en die applicatie niet goed werkt, resulteert dit in de bovengenoemde fout.

Onthoud dat als de serverlogboeken geen fouten tonen, dit meestal duidt op een probleem aan de achterkant van de server.

Om dit probleem op te lossen, controleer je de logbestanden van de backend-applicatie op fouten of uitzonderingen. In WordPress vind je de NodeJS-logbestanden bijvoorbeeld op de volgende locatie:

/var/www/ .com/logs/error.log

7. Onvoldoende bestandsrechten

Als de Nginx-server niet over de benodigde machtigingen beschikt om een ​​bestand te openen of uit te voeren, resulteert dit in een 500-fout. Een interne serverfout treedt bijvoorbeeld op bij een WordPress-site als de Nginx-server geen toegang heeft tot PHP- of HTML-bestanden in de map public_html, of deze niet kan serveren.

Om dit te corrigeren, kunt u de benodigde Nginx-rechten voor de bestanden of mappen waartoe de server toegang heeft, wijzigen met behulp van de volgende opdracht: chmodDe poort is doorgaans 755 voor mappen en 644 voor bestanden.

8. De compatibiliteit van add-ons controleren

Plugins spelen een cruciale rol bij het verbeteren van de serverprestaties. Plugins die niet goed functioneren, verouderd zijn of te vaak zijn bijgewerkt, kunnen echter interne serverfouten veroorzaken. Een WordPress-update kan bijvoorbeeld de functionaliteit van uw site verstoren, omdat veel plugins incompatibel worden totdat ze zijn bijgewerkt.

Om dit probleem op te lossen, moet u ervoor zorgen dat elke toevoeging Verenigbaar Met de serversoftware en andere add-ons. Hoewel dit misschien omslachtig lijkt, is het de moeite waard. Je kunt ook proberen alle add-ons uit te schakelen om te zien of dat het probleem oplost.

Als u onlangs uw serversoftware hebt bijgewerkt, probeer dan het volgende: rug Ga (indien mogelijk) terug naar de vorige versie om te controleren of de fout is verholpen. Dit bevestigt of de update de oorzaak van het probleem was. U kunt de software-update uitstellen totdat is bevestigd dat alle add-ons compatibel zijn.

9. Controleer op defecte scripts

Net als plugins zijn scripts cruciaal voor bepaalde websitefuncties. Een beschadigd, verouderd of incompatibel script kan een interne serverfout veroorzaken.

U kunt dit probleem oplossen door Scripts uitschakelen Controleer de Nginx-server. Als deze correct werkt, bekijk dan de scripts en probeer te achterhalen welke scripts het probleem veroorzaken.

10. Verhoog de time-outwaarde van de server.

Als de time-outwaarde van de server korter is dan de reactietijd van Nginx, treedt er een interne serverfout op. Hetzelfde geldt als het serververzoek langer duurt dan de reactietijd van Nginx; ook dan zal er een probleem optreden.

Het verhogen van de servertime-outwaarde zou het probleem moeten oplossen. Specifieke instructies hiervoor zijn online te vinden.

11. Zorg ervoor dat alle omleidingsprocessen werken.

Zorg ervoor dat alle omleidingsprocessen correct werken wanneer Nginx als proxyserver fungeert. Als de server het clientverzoek niet naar de backendserver kan doorsturen, treedt er een 500-fout op.

Schakel alle omleidingen tijdelijk uit. Om de correcte werking te controleren, start u, indien succesvol, elk proces afzonderlijk opnieuw op om de foutieve omleiding te identificeren. Zodra deze is geïdentificeerd, zoekt u online naar mogelijke oorzaken en oplossingen voor deze specifieke omleidingsfout.

12. PHP gebruiken met Nginx

Nginx biedt van nature geen ondersteuning voor PHP; daarom kunnen onjuiste PHP-configuraties met Nginx leiden tot een interne serverfout.

Om dit probleem op te lossen, controleer de PHP-integratie met Nginx. Als de weergave van PHP-fouten is uitgeschakeld, retourneert de server een Nginx 500-fout wanneer PHP een probleem ondervindt. Het inschakelen van de weergave van PHP-fouten kan het oplossen van problemen vereenvoudigen.

Voer op CentOS 7 de volgende stappen uit:

tail -f /var/log/php-fpm/www-error.log

Ga in plaats daarvan naar

/ Etc / php.ini

En veranderen

display_errors = Uit

naar mij

display_errors = Aan

Je kunt ook op zoek gaan naar een betere PHP-processor (zoals PHP-FPM) en Nginx-caching inschakelen.

13. Hanteer een minimalistische aanpak.

Als je foutcode 500 nog steeds niet kunt verhelpen, kun je de minimalistische aanpak gebruiken om het probleem op te lossen.

  1. gemaakt Back-up Vervang de inhoud van je website door een eenvoudig index.html-bestand met platte tekst.
  2. Controleer of de site Werken Begin met het één voor één toevoegen van routebeschrijvingen, functies, services, plug-ins, scripts, enzovoort.
  3. Test de website na elke stap om te zien of het probleem zich opnieuw voordoet.
  4. Plaats de inhoud terug op je site en controleer of de inhoud de oorzaak van het probleem is.
  5. Zodra je het element hebt gevonden dat het probleem veroorzaakt, kun je het oplossen door op internet te zoeken.

Hoe voorkom je dat de Nginx 500-serverfout zich in de toekomst herhaalt?

U kunt de volgende stappen ondernemen om te voorkomen dat de Nginx 500-fout zich opnieuw voordoet:

  • Voer regelmatig serveronderhoud uit.
  • Zorg ervoor dat de code en de inhoud van de website (afbeeldingen, video's, enz.) geoptimaliseerd zijn voor uw instellingen.
  • Maak een Content Delivery Network (CDN) aan om de site via de cache te bedienen.

Als u vragen heeft, kunt u die stellen in de reacties.

Reacties zijn gesloten.