504
Gateway Timeout
Generel forklaring af 504-statuskoden
HTTP-fejl 504 Gateway Timeout opstår, når en server forsøger at besvare en anmodning fra en klient, men ikke kan gøre det inden for en rimelig tid. Denne fejl kaldes normalt for en "gateway timeout", fordi den ofte opstår, når en proxyserver eller gateway, der formidler mellem klienten og serveren, ikke kan oprette forbindelse eller modtage et svar fra serveren. Dette kan have forskellige årsager, f.eks. overbelastning af serveren, netværksproblemer eller utilstrækkelig konfiguration af proxyen eller gatewayen.
.Specifikation af HTTP-statuskode 504
Kilde / citat fra: HTTP-statuskoden 504 Gateway Timeout er specificeret i afsnit 6.6.5 i RFC7231.
HTTP-protokol
Hvordan får man en 504-statuskode med PHP?
Hvis du vil have HTTP-statuskoden 504 på en webside, kan du bruge PHP-funktionen http_response_code. Syntaksen er som følger: http_response_code(504) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Test 504 HTTP-statuskoden
For at kunne vise HTTP-statuskoden (i dette tilfælde 504 Gateway Timeout) og andre oplysninger på klientsiden skal udviklingskonsollen åbnes med F12. Naviger derefter til fanen "Network" (netværk). Nu kan siden åbnes, hjemmesiden (eksempel index.php) skal være synlig i fanen netværk. Denne skal vælges, og derefter skal Herder-sektionen vælges. Brugeren vil derefter se følgende resultat:
URL: https://http-statuscode.com/errorCodeExample.php?code=504
Status: 504 Gateway Timeout
Disse: Network
IP-adresse: XX.XX.XX.XX
Hvordan løser jeg problemet med 504-statuskoden?
Der er flere mulige årsager til, at en HTTP-fejl 504 Gateway Timeout "Gateway Timeout" kan opstå, f.eks.:
- Serveroverbelastning: Hvis en server modtager for mange anmodninger og ikke kan besvare dem inden for en rimelig tid, kan der opstå en timeout-fejl. Dette kan løses ved at skalere serveren eller tilføje ressourcer såsom CPU, RAM eller lagerplads.
- Netværksproblemer: En timeout-fejl kan også opstå, hvis der er problemer med netværksforbindelsen mellem klienten og serveren. Dette kan løses ved at kontrollere netværksforbindelsen, kontrollere router- eller firewallkonfigurationer eller genstarte netværkskomponenter.
- Proxy- eller gatewayproblemer: En gateway eller proxy, der formidler mellem klienten og serveren, kan også forårsage en timeoutfejl. Dette kan afhjælpes ved at kontrollere og justere proxy- eller gatewayindstillingerne.
- Langsom program eller database: Hvis et program eller en database kører langsomt, kan dette også føre til en timeout-fejl. Dette kan løses ved at optimere applikationen eller databasen.
For at løse problemet kan følgende foranstaltninger træffes:
- Kontroller serverens status, og sørg for, at den ikke er overbelastet.
- Kontroller netværksforbindelsen, og sørg for, at den er stabil og pålidelig.
- Kontroller konfigurationen af proxyer eller gateways, og juster om nødvendigt.
- Optimer programmet eller databasen for at forbedre dets ydeevne.
- Genstart af netværkskomponenter eller servere kan også være med til at løse problemet.
I mange tilfælde kan en kombination af disse foranstaltninger løse problemet.
Sådan opretter du din egen fejlside for statuskode 504
Apache Webserver
Webserveren "Apache" er en af de mest almindelige webservere på internettet. For at oprette din egen 504 Gateway Timeout-fejlside i "Apache" skal du foretage følgende ændring i følgende fil.
NGINX Webserver
I lighed med webserveren "Apache" er "NGINX" også meget udbredt på internettet. For at oprette din egen 504 Gateway Timeout-fejlside i "NGINX" skal du foretage følgende ændring i følgende fil.
location = /504.html {
root /usr/share/nginx/html;
internal;
}
Browserkompatibilitet for 504-statuskoden
Chrome | no data |
Edge | no data |
Firefox | no data |
Opera | no data |
Safari | no data |
Chrome Android | no data |
Firefox for Android | no data |
Opera Android | no data |
Safari on iOS | no data |
Internet | no data |
WebView Android | no data |
Konstanter i programmeringssprog
HttpStatusCode.GatewayTimeout
http.StatusGatewayTimeout
Response::HTTP_GATEWAY_TIMEOUT
httplib.GATEWAY_TIMEOUT
http.client.GATEWAY_TIMEOUT
http.HTTPStatus.GATEWAY_TIMEOUT
:gateway_timeout