Probleemoplossing

HTTP-foutcodes op KapsuleHost

What 403, 404, 500, 502, 503 and 504 actually mean on this platform, and the specific thing to do about each one.

Wat 403, 404, 500, 502, 503 en 504 werkelijk betekenen op dit platform, en wat je er specifiek aan kunt doen.

Een foutcode is geen algemeen foutbericht. Het vertelt je welke laag van de stack het heeft opgegeven, en dat beperkt de oorzaak enorm. Een 502 en een 504 zien er voor een bezoeker identiek uit en hebben volledig verschillende oorzaken en oplossingen.

De werkelijke code lezen

Voordat je gaat troubleshooten, haal je het echte nummer op. Een mooie foutpagina kan het ene zeggen terwijl de server iets anders teruggeeft.

Open in je browser de developer tools, ga naar het tabblad Network, herlaad de pagina en klik op het eerste verzoek. De status staat bovenaan het paneel Headers.

Vanaf een terminal:

curl -sSI https://yourdomain.com/

Dat geeft de statusregel en de antwoordheaders weer zonder de pagina te downloaden. De headers zijn belangrijk: verschillende gevallen hieronder worden geïdentificeerd door een header in plaats van alleen door de code.

De korte versie

CodeBetekenisWiens probleem
401Authenticatie vereistWachtwoordbeveiliging is ingeschakeld
403Opzettelijk geweigerdEen beveiligingsregel heeft het verzoek geblokkeerd
404Niet gevondenJe site, meestal routering
500Je applicatie is gecrashtJe code of een plugin
502De server achter de webserver is misluktMeestal je applicatie
503Opzettelijk momenteel niet serverenOnderbroken, gepauzeerd of onderhoud
504Duurde te langIets in je code is traag

401 Unauthorized

Je ziet een gebruikersnaam- en wachtwoordvak van de browser in plaats van een pagina. Dat betekent dat basiswachtwoordbeveiliging is ingeschakeld op de site of op dat pad.

Schakel het uit of haal de inloggegevens op via Websites, de site, Advanced, vervolgens Password protection. Zie Wachtwoordbeveiliging.

Certificaatvernieuwing blijft werken terwijl wachtwoordbeveiliging is ingeschakeld, dus dit zal je HTTPS niet breken.

403 Forbidden

403 betekent dat iets opzettelijk het verzoek heeft geweigerd. Op dit platform zijn er vier verschillende bronnen.

De web application firewall. Elke site staat achter een regelengine die inkomende verzoeken inspecteert en blokkeert degene die overeenkomen met bekende aanvalspatronen. Dit is de meest voorkomende bron van een onverwachte 403, en het is bijna altijd een fout-positief op een legitiem maar ongebruikelijk verzoek: een lange formulierverwerking, een page builder die complexe inhoud opslaat, een plugin die onbewerkte code post.

Symptomen van een firewallblok: één specifieke actie mislukt elke keer met 403 terwijl de rest van de site prima werkt, en het mislukt identiek in een ander browser en op een ander netwerk.

De oplossing is een gerichte regeluitzondering, die ondersteuning kan toevoegen. Zoek niet naar een schakelaar om de firewall uit te zetten; die bestaat niet voor shared hosting, en het zou toch de verkeerde oplossing zijn. Open een ticket met de exacte URL, het exacte moment en wat je aan het doen was. Zie Een ondersteuningsticket openen.

Geo-blocking. Als je je site tot bepaalde landen hebt beperkt, krijgt iedereen anders een 403. Controleer Advanced, vervolgens Security. Zie Geo-Blocking.

Een IP-blok. Ofwel een dat je zelf hebt toegevoegd onder Security, ofwel een blok op platformniveau voor misbruik.

Een bestandstoestemming of symlink-probleem. Minder gebruikelijk, en het verschijnt meestal na een handmatige bestandsbewerking via SSH.

404 Not Found

De server antwoordde, maar er is niets op dat adres.

Eén pagina geeft 404. Het bestand of het bericht bestaat werkelijk niet, of de URL is onjuist.

Elke pagina behalve de homepage geeft 404. Dit is een routeringsprobleem, en op WordPress is het bijna altijd permalinks. Belangrijk: Kapsule-webhosting gebruikt nginx, niet Apache, dus .htaccess rewrite-regels doen hier niets. Als je van een host bent gemigreerd die ze gebruikte, dat is je oorzaak. Zie Permalinkproblemen en WordPress en .htaccess.

De hele site geeft 404. Controleer dat de site naar de juiste documentroot wijst en dat je domein aan de juiste site is gekoppeld. Zie Aangepast domein voor een website.

Het werkt op je machine en geeft 404 live. Linux-bestandsnamen zijn hoofdlettergevoelig. Logo.PNG en logo.png zijn twee verschillende bestanden.

500 Internal Server Error

Je applicatie is uitgevoerd en gecrasht. De webserver is prima; de code niet.

Dit is het enige geval waarin de logs je bijna onmiddellijk het antwoord geven, omdat een PHP-fatalfout het bestand en het regelnummer registreert dat is mislukt, wat meestal de exacte plugin aanduidt.

  1. Ga naar Websites, de site, Advanced, vervolgens Logs.
  2. Bekijk de meest recente vermeldingen.
  3. Koppel het tijdstempel aan wanneer je de fout zag.

Zie Foutenlogboeken. Voor de WordPress-specifieke versie hiervan, waar de pagina leeg is in plaats van een fout weer te geven, zie Het WordPress-wit scherm.

De meest voorkomende oorzaken zijn een plugin of thema dat niet compatibel is met je PHP-versie, een geheugengrens bereikt en een databaseverbinding die mislukt. Zie PHP-uitbreidingen en instellingen en WordPress-geheugengrens.

502 Bad Gateway

De webserver probeerde het verzoek aan je applicatie door te geven en kreeg niets bruikbaars terug. Het applicatieproces weigerde de verbinding of stierf halverwege het verzoek.

Veelvoorkomende oorzaken:

  • Een PHP-proces is gecrasht, vaak omdat het geheugen op één verzoek is opgebruikt.
  • Een Node.js-applicatie draait niet of is gecrasht bij het opstarten.
  • Een burst van verkeer heeft de beschikbare werkprocessen uitgeput.

Wat te doen: controleer eerst de logboeken, zoals hierboven. Als het een Node-applicatie is, controleer of het proces werkelijk actief is en bekijk de opstartuitleer. Als 502's alleen op je drukste momenten verschijnen, is het een capaciteitsprobleem in plaats van een bug. Zie Site-traagheid en resourcelimieten.

Een 502 van KPanel zelf, terwijl je een instelling opslaat, betekent iets anders. Het betekent dat het paneel de configuratiewijziging niet op de webserver kon toepassen, en het rol de wijziging terug in plaats van je site half geconfigureerd achter te laten. Je website wordt niet beïnvloed. Probeer het opnieuw, en als het blijft mislukken, open je een ticket.

503 Service Unavailable

503 betekent dat de server opzettelijk momenteel niet serveert. Er zijn drie specifieke oorzaken op dit platform, en het antwoord vertelt je welke.

Je site is onderbroken. Je ziet een pagina met de kop "This site is paused". Dit is een facturerings- of accountstatus, geen technische fout, en de site komt direct terug wanneer de status opgehelderdt. Controleer Billing. Zie Mislukte betaling en Account opgeschort.

Een Orbit-project heeft zijn uitgavenlimiet bereikt. Het antwoord bevat de header X-Orbit-Paused: spending-cap, en de pagina zegt dat de site zijn maandelijkse uitgavenlimiet heeft bereikt. Dit verwarrt mensen omdat niets kapot is en geen ondersteuningsticket nodig is. Het project stopte opzettelijk met serveren zodat je niet voor een onverwachte rekening zou worden opgesadeld.

Om te hervatten: ga naar Orbit, het project, Settings, vervolgens Spending cap, en verhoog de limiet. Serveren hervatten zodra de wijziging wordt opgepikt, wat tot een uur kan duren. Het hervatten ook automatisch aan het begin van de volgende factureringsperiode. Zie Orbit-uitgavenlimieten.

Platformonderhoud. Een onderhoudspagina voor het hele platform, wat zeldzaam is en aangekondigd. Controleer Status en beschikbaarheid.

504 Gateway Timeout

Je applicatie werkte nog steeds toen de webserver geen geduld meer had. Niets is gecrasht. Het was gewoon te traag.

Typische oorzaken:

  • Een langdurige import, export, back-up of bulkbewerking uitgevoerd via de browser.
  • Een plugin die een trage externe API op elke paginalading aanroept.
  • Een dure databasequery zonder index erachter.
  • Een cron-taak die door een paginaweergave wordt geactiveerd in plaats van door echte cron.

Wat te doen:

  1. Bepaal welk verzoek traag is. Het APM-tabblad op WordPress-sites toont het je. Zie Site-prestaties.
  2. Gebruik voor langdurige bewerkingen de opdrachtregel in plaats van de browser. Zie WP-CLI.
  3. Verplaats geplande werk naar echte cron. Zie Cron-taken.
  4. Verhoog max_execution_time als het werk werkelijk langer nodig heeft, hoewel dit een workaround in plaats van een oplossing is. Zie PHP-uitbreidingen en instellingen.

Let op het verschil: als PHP eerst zijn eigen uitvoeringslimiet raakt, krijg je een 500, geen 504. Beiden betekenen "te traag", op verschillende lagen.

Helemaal geen reactie

Soms is er geen foutcode, omdat er geen antwoord is. De verbinding hangt gewoon op en tijd uiteindelijk uit.

Als dat van het ene netwerk gebeurt, maar de site werkt vanaf het andere, en vooral vanaf een telefoon op mobiele gegevens, is de meest waarschijnlijke oorzaak een automatisch misbruikblok: een burst van fouten of mislukte aanmeldingen van je adres heeft een tijdelijk netwerkniveauban getriggerd. Deze helderen vanzelf op, meestal binnen een uur. Als je het eerder nodig hebt opgeheven, neem contact op met ondersteuning met het IP-adres van waaruit je verbinding maakt.

Aangepaste foutpagina's

Je kunt de standaardfoute pagina voor 400, 401, 403, 404, 500, 502, 503 en 504 vervangen door je eigen HTML, onder Websites, de site, Advanced, vervolgens Error pages. Kapsule levert merkgebonden standaardwaarden voor 404, 500, 502, 503 en 504 als je die niet hebt.

Iets wat het waard is om te weten: een aangepaste foutpagina houdt de werkelijke statuscode. Een aangepaste 404 geeft nog steeds 404 terug. Je foutpagina serveren met een 200-status is een klassieke manier om je zoekmachinerangschikking te verwoesten, en het is hier opzettelijk niet mogelijk. Zie Aangepaste foutpagina's.

Gerelateerde handleidingen

Nog steeds hulp nodig?

Stuur ons een e-mail op support@kapsulehost.com of open een chat in KPanel.

KPanel openen
HTTP-foutcodes op KapsuleHost