een 504-Gateway-Timeoutfout is een HTTP response status code
die aangeeft dat een server, die momenteel fungeert als gateway of proxy, geen tijdig antwoord heeft ontvangen van een andere server verder stroomopwaarts. Zoals met de meeste HTTP response codes die een fout als deze aangeven, kan het moeilijk zijn om de exacte oorzaak van een 504 Gateway Timeout Error
te bepalen., Er zijn tientallen mogelijke HTTP-statuscodes die worden gebruikt om de complexe relatie tussen de client, een webapplicatie, een webserver en vaak meerdere webservices van derden weer te geven, dus het bepalen van de oorzaak van een bepaalde statuscode kan een uitdaging zijn, zelfs onder de beste omstandigheden.
in dit artikel zullen we de 504 Gateway Timeout Error
onderzoeken door te kijken naar een paar tips voor het oplossen van problemen en mogelijke oplossingen voor veelvoorkomende problemen die dit probleem kunnen veroorzaken, dus laten we beginnen!,
het probleem is Server-Side
alle HTTP response statuscodes die zich in de 5xx
Categorie bevinden, worden beschouwd als server error responses
. Vergelijkbaar met de 502 Bad Gateway Error
waar we in het verleden naar hebben gekeken, geeft een 504 Gateway Timeout Error
aan dat er iets mis is gegaan met een gateway
of proxy
server die verder stroomopwaarts is. Een upstream server
is een server die een service levert aan (dat wil zeggen wordt benaderd door) een andere server., Een server die upstream is, bevindt zich dus hoger in de totale serverhiërarchie dan een server die downstream
is. Een andere manier om te denken aan upstream versus downstream is hun relatieve nabijheid tot uw apparaat — dat wil zeggen de client
) – hoe groter het aantal hops dat nodig is om gegevens van uw client naar de server in kwestie over te brengen, hoe verder upstream
die server zich bevindt.,
aangezien de 504 Gateway Timeout Error
aangeeft dat er iets mis is gegaan binnen de server
van uw toepassing, kunnen we de client
grotendeels negeren. Als u een probleem probeert te diagnosticeren met uw eigen applicatie, kunt u de meeste client-side code en componenten onmiddellijk negeren, zoals HTML, cascading style sheets (CSS), client-side JavaScript, enzovoort. Dit geldt ook niet alleen voor websites., Veel slimme telefoon apps die een modern ogende gebruikersinterface hebben, worden eigenlijk aangedreven door een normale webapplicatie achter de schermen; een die gewoon verborgen is voor de gebruiker. Als u een dergelijke toepassing gebruikt en een 504 Gateway Timeout Error
optreedt, zal het probleem niet gerelateerd zijn aan de app die op uw telefoon of lokaal testapparaat is geïnstalleerd. In plaats daarvan zal het iets aan de server-kant zijn, dat het grootste deel van de logica en verwerking achter de schermen uitvoert, buiten het bereik van de lokale interface die aan de gebruiker wordt gepresenteerd.,
Dat gezegd hebbende, is het niet noodzakelijk het geval dat de specifieke web server
waarop uw toepassing draait de bron van het probleem is. In plaats daarvan is het heel goed mogelijk dat elk aspect van uw specifieke toepassing (samen met zijn servers) feilloos werkt, maar een 504 Gateway Timeout Error
kan nog steeds optreden als een upstream server problemen ondervindt.
begin met een grondige applicatie back-up
zoals met alles, is het beter om het veilig te hebben gespeeld bij het begin dan om iets te verknallen en later spijt te krijgen., Als zodanig, is het van cruciaal belang dat u een volledige back-up van uw toepassing uit te voeren, database, enzovoort, voordat u een fixes of wijzigingen aan het systeem. Nog beter, als je de mogelijkheid hebt, maak dan een volledige kopie van de applicatie aan op een secundaire staging
server die niet “live” is of anderszins niet actief en beschikbaar is voor het publiek. Dit geeft u een schone proeftuin waarmee u alle mogelijke oplossingen kunt testen om het probleem op te lossen, zonder de veiligheid of heiligheid van uw live-toepassing in gevaar te brengen.,
diagnosticeren van een 504 Gateway Timeout fout
zoals vermeld, betekent een 504 Gateway Timeout Error
dat een server die upstream
is naar een server waarmee u verbinding maakt (de client
) geen “tijdig” antwoord heeft ontvangen van een andere server verderop stroomopwaarts. In dit scenario geeft dit aan dat de server die de 504 Gateway Timeout Error
levert, fungeert als een gateway
, dus laten we een moment nemen om te bespreken wat een gateway (of proxy) is., In de meeste HTTP-communicatie zal een client
verbinding maken met een server
via een derde partij gateway
computer. De gateway fungeert als een gateway, waardoor berichten van de client
veilig naar de server
kunnen worden verzonden, en vice versa. Een gateway
fungeert als een node
binnen het grotere netwerk, het verbinden en routeren van communicatie tussen meerdere client
, server
, en andere knooppunttypen binnen de (virtuele) omgeving.,
geloof het of niet, de meeste huizen met internettoegang hebben zelfs een actieve gateway. Uw lokale thuisnetwerk, dat waarschijnlijk is ingesteld via een router (of router+modem hybride), kent meestal IP-adressen toe aan alle apparaten in uw netwerk met behulp van het basisadres van 192.168.1.*
, waarbij de sterretje verandert afhankelijk van het apparaat., In de meeste gevallen is communicatie van een dergelijk lokaal netwerkadres naar een ander lokaal netwerkadres toegestaan, maar wanneer uw computer probeert verbinding te maken met een IP-adres buiten dit basisbereik, zal de gateway
van uw router het onderscheppen en namens u de communicatie tussen uw computer en de externe server uitvoeren.
in sommige situaties kan de webserver die uw toepassing draait de oorzaak van het probleem zijn., Dit geldt in het bijzonder wanneer uw server een combinatie frontend+backend server setup draait (zoals Nginx en Apache), of de webserver vertrouwt op diensten van derden, die meestal elders op extra upstream servers staan. Alle upstream servers waarmee uw client (webbrowser) verbinding maakt, kunnen op dit moment down zijn of problemen ondervinden, wat een vertraging in de verwerking kan veroorzaken en kan leiden tot de 504 Gateway Timeout Error
die u ziet.
bovenal is Google uw vriend., Wees niet bang om te zoeken naar specifieke termen met betrekking tot uw probleem, zoals de naam van de CMS-of webserversoftware van uw toepassing, samen met 504 Gateway Timeout Error
. De kans is groot dat je anderen die dit probleem hebben ervaren en hebben mogelijk een oplossing.,
problemen oplossen op de Server-kant
Hier zijn enkele extra tips om u te helpen problemen op te lossen waardoor 504 Gateway Timeout Error
op de server-kant van dingen verschijnt:
-
Recent DNS Changes
– The Domain Name System (DNS
) is een gedecentraliseerd naamgevingssysteem voor apparaten die via een netwerk zijn verbonden (zelfs een massief netwerk, zoals het internet zelf). In het kort, deDNS
associates domeinnamen (bijv.,airbrake.io
) naar specifieke IP-adressen, en slaat die associatie op in een reeks gezaghebbende nameservers verspreid over de hele wereld. Dus als u uw computer vraagt om verbinding te maken metairbrake.io
, controleert uw computer in feite met een nabijgelegenDNS
name server om erachter te komen wat het specifieke IP-adres (internet resource) is waarmee het verbinding moet maken. Vanuit uw perspectief gaat het direct naarairbrake.io
, maar achter de schermen wordt het verkeer naar een IP-adres geleid (52.203.232.56
, in dit geval)., Bijgevolg kan uw toepassing een504 Gateway Timeout Error
presenteren als uw site recente wijzigingen heeft aangebracht aan zijn DNS-server, wat het gevolg is van het veranderen van hostservers of het verplaatsen van de site naar een ander IP-adres. Dergelijke DNS-wijzigingen, bekend alsDNS propagation
, zijn niet direct en kunnen soms een paar uur duren om door alle gezaghebbende nameservers te verspreiden., -
Server Connectivity Issues
– hoewel het eenvoudig klinkt, is het heel goed mogelijk dat een504 Gateway Timeout Error
simpelweg aangeeft dat een server ergens in de keten down of onbereikbaar is om welke reden dan ook. De meeste moderne toepassingen bevinden zich niet op een enkele server, maar kunnen in plaats daarvan worden verspreid over meerdere systemen, of zelfs vertrouwen op veel diensten van derden om te functioneren. Als een van deze servers down is voor onderhoud of anderszins ontoegankelijk, kan dit resulteren in een fout die lijkt te zijn van uw eigen toepassing., -
Improper Firewall Configuration
– een firewall is een standaard beveiligingsapparaat dat netwerkverkeer bewaakt en fungeert als een gatekeeper, die bepaalt welk verkeer veilig is en welke kwaadaardig kan zijn. In de meeste gevallen wordt al het potentieel schadelijke verkeer gestopt (en kan worden geregistreerd voor gebruik door netwerkbeheerder). In sommige situaties is het heel goed mogelijk dat een firewall die ergens op het netwerk is geconfigureerd waarin uw toepassing wordt uitgevoerd, voorkomt dat een bepaalde vorm van kritiek verkeer erdoor komt., Dit geldt in het bijzonder voor toepassingen die afhankelijk zijn van content delivery networks (CDNs
), die fungeren als een derde partij host voor “zware” inhoud zoals afbeeldingen of video ‘ s, hosten die inhoud namens uw applicatie, zodat uw applicatie zijn snelheid en efficiëntie kan behouden. Automatische firewallservices kunnen echter soms fout-positieven uitvoeren, waarbij ze volkomen veilige en geldige inhoud van CDN ‘ s of elders als kwaadaardig verwarren, waardoor die stream van inhoud in een handomdraai wordt afgesloten, wat kan leiden tot een504 Gateway Timeout Error
., -
Check the Logs
– bijna elke webapplicatie zal een of andere vorm van server-side logs bijhouden.Application logs
zijn typisch de geschiedenis van wat de toepassing deed, zoals welke pagina ‘ s werden opgevraagd, welke servers het verbond met, welke database resultaten het levert, enzovoort.Server logs
zijn gerelateerd aan de hardware die de toepassing draait, en zal vaak details geven over de status en status van alle verbonden services, of zelfs alleen de server zelf., Google ‘logs’ als u een CMS gebruikt, of ‘logs’ en ‘logs’ als u een aangepaste toepassing uitvoert, om meer informatie te krijgen over het vinden van de logs in kwestie. -
Application Code or Script Bugs
– als al het andere mislukt, kan het zijn dat een probleem in sommige aangepaste code binnen uw toepassing het probleem veroorzaakt. Probeer te diagnosticeren waar het probleem kan komen uit door handmatig debuggen van uw toepassing, samen met het parsen door middel van toepassing en server logs., Idealiter maakt u een kopie van de gehele toepassing naar een lokale ontwikkelmachine en voert u een stap-voor-stap debugproces uit, waarmee u het exacte scenario kunt herscheppen waarin de504 Gateway Timeout Error
is opgetreden en de toepassingscode kunt bekijken op het moment dat er iets misgaat.
ongeacht de oorzaak, het verschijnen van een 504 Gateway Timeout Error
afkomstig van uw eigen webapplicatie is een sterke indicatie dat u mogelijk een foutbeheerprogramma nodig hebt om deze en andere fouten in de toekomst automatisch te detecteren., Dergelijke mechanismen kunnen u en uw team zelfs onmiddellijk waarschuwen wanneer er een fout optreedt. Airbrake ‘ s error monitoring software biedt real-time fout monitoring en automatische uitzondering rapportage voor al uw ontwikkelingsprojecten. Airbrake ‘ s state of the art web dashboard zorgt ervoor dat u 24-uurs statusupdates ontvangt over de gezondheid en foutenpercentages van uw toepassing. Het maakt niet uit waar je aan werkt, Airbrake integreert gemakkelijk met de meest populaire talen en frameworks., Plus, Airbrake maakt het gemakkelijk om uitzondering parameters aan te passen, terwijl u volledige controle over de actieve fout filter systeem, zodat u alleen de fouten die het meest belangrijk te verzamelen.
Bekijk vandaag nog Airbrake ’s error monitoring software en ontdek zelf waarom zoveel van’ s werelds beste technische teams Airbrake gebruiken om hun exception handling practices te veranderen!