1、前言 今天在处理一个客户问题,遇到Nginx access log中出现大量的499状态码。...测试nginx发现如果两次提交post过快就会出现499的情况,看来是nginx认为是不安全的连接,主动拒绝了客户端的连接....499是nginx的Web服务器软件扩展的4xx错误,只是用于记录的目的,没有实际的响应。Nginx 499代表服务端请求还未返回时客户端主动断开连接; 还有一种情况就是有人攻击,故意消耗服务端资源。...这个事情交给 php-fpm 自己来处理其实挺合适。因为 PHP 默认当用户断开请求了会中断请求,如果不想自动中断请求,使用 ignore_user_abort() 就好了。...方法/步骤2: 尽管NGINX配置了,但60秒后HTTP499错误。Nginx上的超时都设置了很大的值(远远超过60秒)。这可能是云服务器设置问题,以AWS为例。
今天发现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。
序 本文主要来聊一下nginx的access log当中出现的499问题。...问题描述 499 CLIENT CLOSED REQUEST A non-standard status code introduced by nginx for the case when a client...closes the connection while nginx is processing the request....response) throws InterruptedException { Thread.sleep(100*1000); return "hello"; } nginx...CLIENT CLOSED REQUEST 服务器排障 之 nginx 499 错误的解决
什么是 nginx 的 499 499 是 nginx 扩展的 4xx 错误,目的只是用于记录,并没有实际的响应。...由上述表述可知,nginx 499 代表客户端请求还未返回时,客户端主动断开连接。...时间问题 最开始时,表述过 nginx 499 是客户端主动断开了连接。...这里的客户端概念,我的理解是对请求连接过程中的下游服务而言的,例如浏览器与 nginx 之间的连接,浏览器为客户端;nginx 与其分发的服务而言,nginx 是客户端;php 处理程序中发起的 curl...出现 nginx 上设置的超时很大,nginx 同样记录了 499 状态,那么有可能就是负载均衡在默认时间(一般是 60 s)后删除了连接。
过程 0x01 经搜索得知: 哪些情况下会使 Nginx 返回 HTTP CODE 499? 首先,这个问题百度谷歌应该都能搜到。...在nginx源码中,499对应的定义是 “client has closed connection”。这很有可能是因为服务器端处理的时间过长,客户端“不耐烦”了。...: PHP 进程「死」了。...0x02 这里的死,不一定是进程结束,也有可能是僵尸,或是陷入死循环,一直在执行某个脚本…… 若是逐个检查代码时间来不及(以先解决问题为重),遂排查: Nginx+FastCGI 到底是谁影响超时时间...以及: PHP-max_execution_time 与 fpm.request_terminate_timeout 介绍 0x03 经过上面的调整,大约一周后再次维护服务器。
点击上方“码农沉思录”,选择“设为星标” 优质文章,及时送达 概要 这篇文章从nginx的499着手,分析整个过程中是怎么产生499行为的,以及各种往返网络包出现的原因。...我轻描淡写的回复了就是客户端设置的超时时间到了,nginx自己记录的内部错误码。这样草草打发之后,我的内心久久不能平复,499的背后nginx和客户端以及upstream到底发什么了什么,不得而知。...接着我去查了nginx对499对定义,只说明了这是client关闭连接的code,没有其他更深入的信息。...实验 os: mac 服务: golang+nginx+(php)fpm 操作: golang作为client,发起http调用,设置1秒超时,php对应接口sleep 3秒之后响应,nginx作为反向代理...php脚本处理完之后,马上会执行shutdown来关闭socket的写入通道,很合理,毕竟逻辑已经处理完了,不需要再向nginx返回数据了。
问题描述: Nginx 服务器大量499报错 220.181.165.136 - - [18/May/2015:10:31:02 +0800] "POST /v1/jobsHTTP/1.1" 499 0...出现的原因 google定义: 499 / ClientClosed Request An Nginx HTTP server extension....Closed Request (Nginx) Used in Nginx logs to indicate when the connection has been closed by client...(2)server处理请求未结束,而client提前关闭了连接,此时也会返回499。 (3)在一个upstream出错,执行next_upstream时也会判断连接是否可用,不可用则返回499。...默认 proxy_ignore_client_abort 是关闭的,此时在请求过程中如果客户端端主动关闭请求或者客户端网络断掉,那么 Nginx 会记录 499,同时 request_time 是「后端已经处理
一、解释一下 1.php-fpm.conf:是PHP-FPM特有的配置文件,是PHP-FPM进程管理器的配置文件 2.php.ini:是php模式中必须的配置文件, 是PHP解析器的配置文件 3.nginx.conf...:nginx的配置文件。...Nginx不只有处理http请求的功能,还能做反向代理。Nginx通过反向代理功能将动态请求转向后端Php-fpm。...那就交给php解释器来处理吧! 交给php解释器处理很好,但是,php解释器如何与webserver进行通信呢?...我们知道php.ini 里面max_execution_time 可以设置 PHP 脚本的最大执行时间,但是,在 php-cgi(php-fpm) 中,该参数不会起效。
499产生的原因也常常会和504会有内在的关联,你都了解吗?本文不光制造它们,而且会循序渐进,在对比之中制造它们。 复现环境说明 系统环境和软件环境为:Linux,Nginx,php-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。
版本无须此选项] make-j2 && make install 四、配置PHP环境变量 在Linux CentOS系统上 安装完PHP和Nginx后,一般需要执行查看版本命令’php -v’和’nginx...php命令或者nginx命令了(注意下面的分号要在双引号内部,否则会报错) export PATH=$PATH:/usr/local/nginx/sbin $ php -r “echo ‘...start 六、配置nginx支持php LNMP环境中的nginx是不支持php的,需要通过fastcgi插件来处理有关php的请求。.../conf/nginx.conf user www www; #首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php/etc/php-fpm.d/www.conf...#保存并退出 启动nginx服务 # /etc/init.d/nginx restart #启动php服务 # /etc/init.d/php-fpm start 测试php配置 进入nginx默认网站根目录
server{ listen 80; server_name xx; #项目域名 location / { root /usr/share/nginx.../html; index index.php index.html index.htm; } location ~ \.php$ {.../usr/share/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php
ubuntu 下一键安装 nginx php 的环境 nginx 配置参考: server { listen 80; server_name 127.0.0.1 localhost;...root /usr/share/nginx/html/www; index index.php index.html index.htm; location ~ .*\.php...(\/.*)*$ { include fastcgi.conf; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass...unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_connect_timeout 300;
由于需要将word-》pdf功能从windows迁移到linux,由于现在测试服务器尝试,所以有必要记录下安装过程。
nginx 相对 apache 的优点: ● 轻量级,同样起web 服务,比apache 占用更少的内存及资源 ● 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx...能保持低资源低消耗高性能 ● 高度模块化的设计,编写模块相对简单 ● 社区活跃,各种高性能模块出品迅速啊 ● Nginx支持更多的并发连接,能够支持高达50000个并发连接数的相应 ● 能在不间断服务的情况下进行版本升级...,能做到不间断运行(7*24) ● 对静态处理性能高于apache apache 相对nginx 的优点: ● rewrite ,比 nginx 的 rewrite 强大 ● 模块超多,基本想到的都可以找到...● 少bug ,nginx 的bug 相对较多,apache拥有更成熟的技术和开发社区 ● 对动态处理性能高于nginx 两者最核心的区别在于: apache是同步多进程模型,一个连接对应一个进程;nginx
sudo service docker start 二、编辑启动脚本: 在系统中建立一个专门存放docker启动的脚本,分别是,start_docker_mysql.sh,start_docker_nginx.sh...在start_docker_php.sh中写入一下内容: sudo docker run --name php --link=mysql:mysql -d -v /home/wwwroot:/home...3.编写启动nginx脚本。...在start_docker_nginx.sh中写入一下内容: 三、添加nginx 配置文件: 我的内容如下 四、运行项目: 按顺序执行编写的三个脚本,顺序本别是,start_docker_mysql.sh...-> start_docker_php.sh -> start_docker_nginx.sh 执行完成后入下图: mysql,php,nginx都启动成功的话,会是上图的情况, 如果没有启动成功
最近接手了一个 PHP 项目,之前没做过 PHP,于是从搭建PHP环境开始学习下,同时写篇 Ubuntu 安装 PHP 的教程。...-dev php5.6-fpm php5.6-cgi sudo apt-get install php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-gd...php5.6-curl php5.6-memcache PHP 7.1 版本 sudo apt-get install php7.1 php7.1-cli sudo apt-get install php7.1...-dev php7.1-fpm php7.1-cgi sudo apt-get install php7.1-mysql php7.1-gd php7.1-curl php7.1-memcache 四、...Nginx配置 # Pass all .php files onto a php-fpm/php-fcgi server. location ~ [^/]\.php(/|$) { fastcgi_split_path_info
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页面或者图片)发送给客户端。
Nginx 配置虚拟主机 在conf目录中的nginx.conf中最后一行前面加上 include vhost/*.conf; 在conf目录中添加一个文件夹vhost(此文件夹用来保存Nginx...D:/code/php; location ~ \.php$ { # 项目php文件所在的最外层目录...配置 php\ext下修改php.ini-development文件,将文件名修改为php.ini,打开php配置文件php.ini,保存即可。...启动PHP的fastcgi 执行 ./php-cgi.exe -b 127.0.0.1:9000 -c ..../php.ini& 启动Nginx 在nginx文件夹下面找到nginx应用程序并双击即可 测试效果 创建php文件(依上例在D:\code\php下面建一个index.php文件),内容为: <
LNMP(Linux nginx mysql php)---比较潮流,新的webn服务,使用率上升趋势(国内非常流行)。 ...实现原理:nginx(apache)--》php--》mysql nginx的应用场合: 1.静态服务(图片,视频),另一个lighttpd(社区不活跃)。...并发:500-1500,类似于apache+php,lighttpd+fcgi php 3.反向代理,负载均衡。日PV2000W以下,都可以用nginx做代理。...LNMP下的php: apache----》libphp5.so nginx---》fcgi php-fpm port9000(百度) 在安装php之前确保mysql,nginx运行正常[root@localhost.../php/sbin/php-fpm /application/nginx/sbin/nginx EOF [root@134 extra]# cat /application/nginx/conf/extra
领取专属 10元无门槛券
手把手带您无忧上云