首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Nginx的 HTTP 499 状态码处理

1、前言   今天在处理一个客户问题,遇到Nginx access log中出现大量的499状态码。...测试nginx发现如果两次提交post过快就会出现499的情况,看来是nginx认为是不安全的连接,主动拒绝了客户端的连接....499nginx的Web服务器软件扩展的4xx错误,只是用于记录的目的,没有实际的响应。Nginx 499代表服务端请求还未返回时客户端主动断开连接; 还有一种情况就是有人攻击,故意消耗服务端资源。...这个事情交给 php-fpm 自己来处理其实挺合适。因为 PHP 默认当用户断开请求了会中断请求,如果不想自动中断请求,使用 ignore_user_abort() 就好了。...方法/步骤2: 尽管NGINX配置了,但60秒后HTTP499错误。Nginx上的超时都设置了很大的值(远远超过60秒)。这可能是云服务器设置问题,以AWS为例。

8.9K20

Nginx 499错误码

今天发现nginx有不少的499错误,大约占了将近0.5%,而且是在新上线了一个含upstream的业务之后。...grep一下nginx源码,定义在ngx_request_t.h /* * HTTP does not define the code for the case when a client closed...这下就很清楚了,这是nginx定义的一个状态码,用于表示这样的错误:服务器返回http头之前,客户端就提前关闭了http连接。...upstream在以下几种情况下会返回499: (1)upstream 在收到读写事件处理之前时,会检查连接是否可用:ngx_http_upstream_check_broken_connection,...(2)server处理请求未结束,而client提前关闭了连接,此时也会返回499。 (3)在一个upstream出错,执行next_upstream时也会判断连接是否可用,不可用则返回499

1.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

Nginx+PHP(laravel) 环境 499 错误码排查过程小记

过程 0x01 经搜索得知: 哪些情况下会使 Nginx 返回 HTTP CODE 499? 首先,这个问题百度谷歌应该都能搜到。...在nginx源码中,499对应的定义是 “client has closed connection”。这很有可能是因为服务器端处理的时间过长,客户端“不耐烦”了。...: PHP 进程「死」了。...0x02 这里的死,不一定是进程结束,也有可能是僵尸,或是陷入死循环,一直在执行某个脚本…… 若是逐个检查代码时间来不及(以先解决问题为重),遂排查: Nginx+FastCGI 到底是谁影响超时时间...以及: PHP-max_execution_time 与 fpm.request_terminate_timeout 介绍 0x03 经过上面的调整,大约一周后再次维护服务器。

1.1K20

我是这么学习nginx 499

点击上方“码农沉思录”,选择“设为星标” 优质文章,及时送达 概要 这篇文章从nginx499着手,分析整个过程中是怎么产生499行为的,以及各种往返网络包出现的原因。...我轻描淡写的回复了就是客户端设置的超时时间到了,nginx自己记录的内部错误码。这样草草打发之后,我的内心久久不能平复,499的背后nginx和客户端以及upstream到底发什么了什么,不得而知。...接着我去查了nginx499对定义,只说明了这是client关闭连接的code,没有其他更深入的信息。...实验 os: mac 服务: golang+nginx+(php)fpm 操作: golang作为client,发起http调用,设置1秒超时,php对应接口sleep 3秒之后响应,nginx作为反向代理...php脚本处理完之后,马上会执行shutdown来关闭socket的写入通道,很合理,毕竟逻辑已经处理完了,不需要再向nginx返回数据了。

1.9K21

一边制造,一边讲解http状态码502|504|499|500

499产生的原因也常常会和504会有内在的关联,你都了解吗?本文不光制造它们,而且会循序渐进,在对比之中制造它们。 复现环境说明 系统环境和软件环境为:Linux,Nginxphp-fpm。...是指一次http请求在客户端指定的时间内没有返回响应,此时,客户端会主动断开连接,此时表象为客户端无响应返回,而nginx的日志中会status code 为499。...milliseconds with 0 bytes received nginx的access日志的code为499,如下: "HEAD /hello.php HTTP/1.1" 499 0 500...> 由于php代码语法错误,php-fpm执行失败,然后告诉nginx这一结果,nginx则返回500。.../webroot/hello.php on line 3 总结 499是由于超过客户端设置的请求超时时间,客户端主动关闭连接,服务器code为499

8.4K61

nginx php apache php 对比,Apache和nginx的比较「建议收藏」

nginx 相对 apache 的优点: ● 轻量级,同样起web 服务,比apache 占用更少的内存及资源 ● 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx...能保持低资源低消耗高性能 ● 高度模块化的设计,编写模块相对简单 ● 社区活跃,各种高性能模块出品迅速啊 ● Nginx支持更多的并发连接,能够支持高达50000个并发连接数的相应 ● 能在不间断服务的情况下进行版本升级...,能做到不间断运行(7*24) ● 对静态处理性能高于apache apache 相对nginx 的优点: ● rewrite ,比 nginx 的 rewrite 强大 ● 模块超多,基本想到的都可以找到...● 少bug ,nginx 的bug 相对较多,apache拥有更成熟的技术和开发社区 ● 对动态处理性能高于nginx 两者最核心的区别在于: apache是同步多进程模型,一个连接对应一个进程;nginx

1.5K20

编译PHP并与Nginx整合

Nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。...Nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被Nginx。...多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等。同时,FastCGI也被许多脚本语言支持,其中就有PHP。...2、Nginx+FastCGI运行原理  Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。...再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据(html页面或者图片)发送给客户端。

62620
领券