什么是499客户端关闭请求错误?
499状态码是客户端(例如浏览器)在Nginx处理请求时关闭连接时引入的非标准状态代码。
一、如何修复499客户端关闭请求错误
客户端不处理请求并最终得到499错误代码的原因有多种。在以下部分中,我们将帮助您确定不同的原因以及如何在每种情况下解决它们。
1. 网站位于代理后面时出现499错误
当您的用户和 Nginx 之间有负载平衡服务时,您可能会发现 499 错误。当您的 Nginx 站点由 CDN 提供服务或位于 WAF(Web 应用程序防火墙)后面时,也会发生类似的情况。
当处理浏览器请求的前端服务器是处于反向代理模式的 Nginx 服务器,并且它将请求发送到您的服务器站点,但您的站点进程超过前端服务器的等待时间时,会发生 499 错误。
要修复此错误,您可以:
- 增加应用程序服务器的处理能力。通过增加“处理能力”,您将减少Nginx客户端在您的服务面前的等待时间。
- 如果无法增加应用程序服务器的功能,请增加代理的超时(负载均衡器、CDN、防火墙等)。
2.设置超时的正确方法
如果您的设置中有代理,例如“负载均衡器”、防火墙、CDN 等,则应设置超时,以便首先使应用程序服务器超时,然后再使用户的其他代理超时。
例子:
用户→ CDN → Nginx 负载均衡器→ Nginx 应用程序→ Php_fpm
建议按如下方式设置超时:
- n 秒超时。
在配置文件中设置: Php_fpmphp.inimax_execution_timerequest_terminate_timeoutphp_fpm - n+1 秒到 Nginx 应用程序超时。
在你的nginx配置中设置: fastcgi_read_timeout - n+2 秒到 Nginx 负载均衡器超时
在您的位置location设置超时:
proxy_pass
proxy_connect_timeout
proxy_send_timeout
proxy_read_timeout
- CDN的超时时间为 n+3 秒。注意:如果您无法设置 CDN 的超时,请找到它的超时时间并根据需要调整其他超时。
二、当服务器关闭连接时499错误
这可能是以下情况:
- 您的网站正在使用Nginx服务器运行;
- 请求被传递给应用处理器,例如:php_fpm
- 请求将传递到您的 API
此设置是使用 nginx 指令配置的:fastcgi_pass
此 499 错误代码是在服务器速度太慢时生成的。例如,您的WordPress页面进程花费太长时间或冻结。
要更正此错误,您可以:
- 增加服务器的处理能力。通过增加“处理能力”,您将减少Nginx等待的时间。
- 如果无法增加服务器功率,请使用指令增加 Nginx 超时:fastcgi_read_timeout
三、如何在应用程序崩溃时修复499错误
如果您的应用程序在没有响应的情况下彭奎,则解决方案可能在您的 API 或 CGI 代码中。
注意:这是最不常见的情况,PHP 和其他处理器总是抛出注释来通知问题。如果应用程序抛出错误,Nginx会向您传递5XX错误代码,而不是499。
如果您的应用程序崩溃,您有4个选项:
- 首先,告诉Nginx等待更长的时间。通过修改:fastcgi_read_timeout;
- 如果等待更长时间不能解决问题,请增加服务器的处理能力;
- 如果 499 错误发生在特定页面或请求上,则可能是应用程序或内容管理器中的“挂起”或“代码崩溃”
- 如果您使用WordPress,请检查插件兼容性;如果进行了数据库查询,请检查表和索引的良好状态。
四、当您的服务器受到DOS或DDOS攻击时499错误
可能存在有人攻击并故意消耗服务器资源的情况,这使得服务器无法处理请求并按时返回结果。要验证这是否是您的情况:查看您的分析,并搜索提供499状态代码的请求的流量峰值:
如何修复DOS/DDOS攻击时的499错误:
在这种情况下,最好的解决方案是结合使用安全措施:
- 预防:避免非合法流量。您可以使用公共和私有黑名单的组合来过滤恶意流量;
- 添加针对 DOS(拒绝服务)和 DDOS(分布式拒绝服务)的基础架构保护。寻找具有准备好缓解此类攻击的基础架构的托管服务提供商;
- 在服务器前面添加保护层、安全代理;
- 添加外部安全服务。例如著名的Cloudflare,他们将分布式基础架构放在您的服务器前面以抵御DDOS攻击。
以下是所有的HTTP状态代码及其含义:
200 OK
201 创建
202 已接受
203 非权威信息
204 无内容
205 重置内容
206 部分内容
207 多状态
208 已报告
已使用 226 个 IM
300 多项选择
301 永久搬家
302 找到
303 查看其他
304 未修改
305 使用代理
307 临时重定向
308 永久重定向
400 错误请求
401 未经授权
402 需要付款
403 禁止
404 未找到
405 方法不允许
406 不可接受
407 需要代理身份验证
408 请求超时
409 冲突
410 消失了
411 所需长度
412 前提条件失败
413 有效载荷太大
414 请求 URI 太长
415 不支持的媒体类型
416 请求的范围无法满足
417 期望失败
418 我是茶壶
421 错误的请求
422 无法处理的实体
423 锁定
424 失败的依赖项
426 需要升级
428 需要前提条件
429 请求过多
431 请求标头字段太大
444 连接关闭无响应
451 因法律原因不可用
499 客户端关闭请求

文章评论