打开网页出现504是什么
打开网页出现504是通常意味着上游服务器已关闭(不响应网关 / 代理),而不是上游服务器和网关 / 代理在交换数据的协HTTP504怎议上不一致。
正常情况下,是由于被请求服务器发送超时引起。HTTP504怎服务器(不一定是 Web 服务器)正在作为一个网关或代理来完成客户(如您的浏览器或我们的 CheckUpDown 机器人)访问所需网址的请求。 为了完成您的 HTTP 请求, 该服务器访问一个上游服务器, 但没得到及时的响应。
扩展资料
解决方法
这个问题完全是由后端电脑之间 IP 通讯缓慢而产生, 可能包括 Web 服务器。 如果 Web 服务器由某一网站托管, 只有负责那个网站设置的人员才能解中信神决这个问题。
网络上代理和缓HTTP504怎存的使用日渐增加。尽管 CheckUpDown 机器人将总是试图 ' 钻入 ' 真正收管的网站的卖亏电脑, 但是 HTTP 请求实际上落在哪里并不能完全控制。 只要在处理 HTTP 请求的一连串电脑中, 有一个环节坏了,类似 504 的错误就很容易产生。
遇坦族到 504 错误,与网站官方联系(例如通过电子邮件),此问题个人无法解决。需要网站方和互联网服务供应商 (ISP) 及 Web 服务器软件供应商联络, 检查在其控制下的不同电脑之间的 IP 数据传输的流通状况。
参考资料来源:百度百科-504错误
打开网页时出现504错误是怎么回事?
HTTP状态码(HTTP Status Code) \x0d\x0a一些常见的状态码为:200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 \x0d\x0a所有状态解释:点击查看 \x0d\x0a1xx(临时响应)源液\x0d\x0a表示临时响应并需要请求者继续执行操作的状态代码。\x0d\x0a\x0d\x0a代码 说明 \x0d\x0a100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 \x0d\x0a101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 \x0d\x0a\x0d\x0a2xx (成功)\x0d\x0a表示成功处理了请求的状态代码。\x0d\x0a代码 说明 \x0d\x0a200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 \x0d\x0a201 (已创建) 请求成功并且服务器创建了新的资源。 \x0d\x0a202 (已接受) 服务器已接受请求,但尚未处理。 \x0d\x0a203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。 \x0d\x0a204 (无内容) 服务器成功处理了请求,唯丛但没有返回任何内容。 \x0d\x0a205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。\x0d\x0a206 (部分内容) 服务器成功处理了部分 GET 请求。 \x0d\x0a\x0d\x0a3xx (重定向) \x0d\x0a表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。雹山物\x0d\x0a\x0d\x0a代码 说明 \x0d\x0a300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。 \x0d\x0a301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。\x0d\x0a302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。\x0d\x0a303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。\x0d\x0a304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 \x0d\x0a305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。 \x0d\x0a307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 \x0d\x0a\x0d\x0a4xx(请求错误) \x0d\x0a这些状态代码表示请求可能出错,妨碍了服务器的处理。\x0d\x0a\x0d\x0a代码 说明 \x0d\x0a400 (错误请求) 服务器不理解请求的语法。 \x0d\x0a401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 \x0d\x0a403 (禁止) 服务器拒绝请求。\x0d\x0a404 (未找到) 服务器找不到请求的网页。\x0d\x0a405 (方法禁用) 禁用请求中指定的方法。 \x0d\x0a406 (不接受) 无法使用请求的内容特性响应请求的网页。 \x0d\x0a407 (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。\x0d\x0a408 (请求超时) 服务器等候请求时发生超时。 \x0d\x0a409 (冲突) 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。 \x0d\x0a410 (已删除) 如果请求的资源已永久删除,服务器就会返回此响应。 \x0d\x0a411 (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。 \x0d\x0a412 (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。 \x0d\x0a413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 \x0d\x0a414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。 \x0d\x0a415 (不支持的媒体类型) 请求的格式不受请求页面的支持。 \x0d\x0a416 (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。 \x0d\x0a417 (未满足期望值) 服务器未满足"期望"请求标头字段的要求。 \x0d\x0a\x0d\x0a5xx(服务器错误)\x0d\x0a这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。\x0d\x0a\x0d\x0a代码 说明 \x0d\x0a500 (服务器内部错误) 服务器遇到错误,无法完成请求。 \x0d\x0a501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。 \x0d\x0a502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。 \x0d\x0a503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。 \x0d\x0a504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。 \x0d\x0a505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
网页出现“504 Gateway Time-out”,没有其它信息是什么原因?
对于一个Web开发者来说,504和502问题看上去好像很简单,每个人也可能都遇到过,但把问题说清楚并不那么容易
两台设备只态毁明要通过proxy或fastcgi协议互相通信,都会遇到504问题,比如Nginx+PHP-FPM会遇到;代理服务器连接后端Web服务也会遇到。本次遇到的场景属于后者,重点讲解代理导致的504问题。
那到底上面是504错余孙误呢,看下wiki的引用:
4 Gateway Timeout
The server was acting as a gateway or proxy and did not receive a timely response from the upstream server
意思就是一个网关或代理服务器能够连接后端服务器,但在读取服务器响应的时候超时了。遇到504问题一般是后端服务的问题,比如:
后端进程无故退出了(可能是代码异常,也可能是apache或nginx进程异常),导致代理服务器接收不到后端响应。
后端响应缓慢,导致代理服务器接收后端响应超时了。
服务器出现504 Gateway Time-out的解决方法!
按照上述帆告可能的两个情况,逐一分析。
(1)x.php程序在特定的情况下,确实运行缓慢,但apache得access log在25秒左右的时候成功记录了200访问日志(由于php代码执行结束后才记录日志,一开始可能看不到access日志,导致开始误认为是后端程序的问题)。
(2)在x.php程序中记录应用日志,应用日志和access log日志一样,没有任何异常。
这说明代码并没有问题(但程序执行时间过长,有优化的空间),虽然在20秒产生504错误(由nginx处理),后端代码进程仍然继续运行,并在25秒成功运行。
排除这个问题后,最有可能是代理服务器觉得后端响应过于缓慢,主动关闭了该连接,是不是代理服务器设置的超时时间过短?由于公司的代理服务器(ssl nginx)是由专人维护的,看不到具体的配置,邮件询问了同事,得到回复如下:
proxy_read_timeout 60
proxy_send_timeout 60
首先看下 proxy_read_timeout 的介绍:
Defines a timeout for reading a response from the proxied server. The timeout is set only between two successive read operations, not for the transmission of the whole response. If the proxied server does not transmit anything within this time, the connection is closed.
最后将该值修改为:
proxy_read_timeout 300
proxy_send_timeout 300
问题最终解决了,肯定是proxy读取超时了,但具体的配置仍然疑惑。
进一步测试
可以进一步了解nginx的proxy配置,如果没有特殊的需求,配置非常简单。
server {
listen 443 ssl;
server_name www.simplehttps.com;
location / {
access_log access.log main;
error_log error.log;
proxy_pass 5;
}
}
proxy_pass 可以是一个host、内部域名、ip地址,不用是一个对外的域名。
如果遇到超时问题,观察error.log日志,会看到以下错误:
2018/09/19 21:01:19 [error] 17034#0: 253 upstream timed out (110: Connection timed out) while reading response header from upstream, client: ..., server: www.simplehttps.com, request: "GET /x.php HTTP/1.1", upstream: " host: "www.simplehttps.com"
最后经过不断调整nginx的proxy_read_timeout指令和后端x.php程序的执行时间,也没有遇到工作中遇到的问题(20秒和60秒之间不对称的问题),只能后续继续留意了。
总结
1:网关和后端的超时时间(proxy或fastcgi)必须协调一致,在本案例中,apache/mod_php运行最长时间如果是30秒,那么nginx设置的超时时间必须大于30秒,因为必须考虑网络传输延时时间(非网络包总传输时间);而如果是nginx+php-fpm模式,nginx设置的超时时间相对简单,因为大部分情况下,nginx和php-fpm部署在同一台机器上,网络延时相对较短,但必须考虑php最大执行时间和php-fpm最大执行时间,
2:针对504错误,可认为都是http错误码,都是服务器端的错误(相对于客户端),在遇到相关错误的时候,必须根据错误码判断可能存在的问题,然后再针对性的排查,否则排查时间会增加很多。
504错误是怎么回事
504错误是(网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
服务器(不一定是 Web 服务器)正在作为一个网关或代理来完成客户(如浏览器或 CheckUpDown 机器人)访问所需网址的请求。 为了完成HTTP 请求, 该服务器访问一个上游服务器, 但没得到及时的响应。
这通常意味着上游服务器已谨闭激关闭(不响应网关 / 代理),而不是上游服务器和网关 / 代理在交换数据的协议上不一致。
正常情况下,是由于被请求服务器发送超时引起。
解决方法:
这个问题完全是由后端电脑之间 IP 通讯缓慢而产生, 可能包括Web 服务器。 如果Web 服务器由某一网站托管, 只有负责那个网站设置的人员 才能解决这个问题。
网络上代理和缓存的使用日渐增加。尽管CheckUpDown 机器人将总是试图 ' 钻入 ' 真正收管您的网站的电脑, 但是HTTP 请求实际上落在哪里并不能完全由使用者控制。 只要在处理HTTP 请求的一连串电脑中, 有一个环节坏了,类似 504 的错误就很容易产生。
只要遇到 504 错误,就请与网站官方联系(例如通过电子邮祥袜件) - 此问题个人无法解决。需要网站方和互联网服务供应商态猜 (ISP) 及 Web 服务器软件供应商联络, 检查在其控制下的不同电脑之间的 IP 数据传输的流通状况。 然而, 这个错误不易解决, 由于互联网流通的无规律性, 这种类型的错误是瞬态的。
本文地址:https://www.favorvalve.com/post/310.html 本文"HTTP504怎么办(504怎么)"内容及资源来自互联网,请自行判断内容的正确性,如有侵权请联系客服删除,邮箱:a806405597@163.com
发表评论
10条评论