504
Gateway Timeout
Obecné vysvětlení stavového kódu 504
Chybový protokol HTTP 504 Gateway Timeout se objeví, když se server pokusí odpovědět na požadavek klienta, ale není schopen to udělat v přiměřeném čase. Tato chyba se obvykle označuje jako "časový limit brány", protože k ní často dochází, když se proxy server nebo brána, která je prostředníkem mezi klientem a serverem, nemůže připojit nebo přijmout odpověď od serveru. To může mít různé příčiny, například přetížení serveru, problémy se sítí nebo nedostatečná konfigurace proxy serveru nebo brány.
.Specifikace stavového kódu HTTP 504
Zdroj / Citace z: Stavový kód 504 Gateway Timeout HTTP je specifikován v oddílu 6.6.5 oddílu RFC7231.
Protokol HTTP
Jak vyhodit stavový kód 504 pomocí PHP?
Pro zobrazení stavového kódu HTTP 504 na webové stránce lze použít funkci PHP http_response_code. Syntaxe je následující: http_response_code(504) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Testování stavového kódu HTTP 504
Aby bylo možné zobrazit stavový kód HTTP (v tomto případě 504 Gateway Timeout) a další informace na straně klienta, je třeba otevřít vývojovou konzolu pomocí klávesy F12. Poté přejděte na kartu "Síť". Nyní lze stránku otevřít, webová stránka (příklad index.php) by měla být viditelná na kartě sítě. Ta musí být vybrána a poté musí být vybrána sekce Herder. Uživatel pak uvidí následující výsledek:
URL: https://http-statuscode.com/errorCodeExample.php?code=504
Stav: 504 Gateway Timeout
Tyto stránky: Network
IP adresa: XX.XX.XX.XX
Jak vyřeším problém se stavovým kódem 504?
Existuje několik možných důvodů, proč může dojít k chybě HTTP 504 Gateway Timeout "Gateway Timeout", například:
- Přetížení serveru: Pokud server obdrží příliš mnoho požadavků a není schopen na ně odpovědět v přiměřeném čase, může dojít k chybě timeoutu. To lze vyřešit zvětšením velikosti serveru nebo přidáním zdrojů, jako je procesor, paměť RAM nebo úložiště.
- Síťové problémy: K chybě timeoutu může dojít také v případě problémů se síťovým připojením mezi klientem a serverem. To lze vyřešit kontrolou síťového připojení, kontrolou konfigurace směrovače nebo brány firewall nebo restartováním síťových komponent.
- Problémy s bránou nebo proxy serverem: Chybu timeoutu může způsobit také brána nebo proxy server, který je prostředníkem mezi klientem a serverem. To lze napravit kontrolou a úpravou nastavení proxy serveru nebo brány.
- Pomalá aplikace nebo databáze: Pokud aplikace nebo databáze běží pomalu, může to také vést k chybě timeoutu. To lze napravit optimalizací aplikace nebo databáze.
K vyřešení problému lze provést následující opatření:
- Zkontrolujte stav serveru a ujistěte se, že není přetížen.
- Zkontrolujte síťové připojení a ujistěte se, že je stabilní a spolehlivé.
- Zkontrolujte konfiguraci proxy serverů nebo bran a v případě potřeby ji upravte.
- Optimalizujte aplikaci nebo databázi, abyste zlepšili její výkon.
- K odstranění problému může pomoci také restartování síťových komponent nebo serverů.
V mnoha případech může problém vyřešit kombinace těchto opatření.
Jak vytvořit vlastní chybovou stránku pro stavový kód 504
Apache Webserver
Webový server Apache je jedním z nejběžnějších webových serverů na internetu. Chcete-li vytvořit vlastní chybovou stránku 504 Gateway Timeout v serveru "Apache", je třeba provést následující změnu v následujícím souboru.
NGINX Webserver
Podobně jako webový server Apache se na internetu hojně používá i NGINX. Chcete-li vytvořit vlastní chybovou stránku 504 Gateway Timeout v serveru "NGINX", je třeba provést následující změnu v následujícím souboru.
location = /504.html {
root /usr/share/nginx/html;
internal;
}
Kompatibilita stavového kódu 504 s prohlížeči
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 |
Konstanty v programovacích jazycích
HttpStatusCode.GatewayTimeout
http.StatusGatewayTimeout
Response::HTTP_GATEWAY_TIMEOUT
httplib.GATEWAY_TIMEOUT
http.client.GATEWAY_TIMEOUT
http.HTTPStatus.GATEWAY_TIMEOUT
:gateway_timeout