Centos中Nginx 报HTTP 499、504错误

2016-11-16 01:34:17 12492

在nginx的日志记录中,出现499的状态码有很多种情况,我遇到的一种就是nginx反向代理到一个永远打不开的后端或者这个后端可以打开,但是你访问的延迟很高,日志记录就是499,发送字节数是0.

Nginx源码中关于499的定义是这样的:

ngx_string(ngx_http_error_495_page), /* 495, https certificate error */

ngx_string(ngx_http_error_496_page), /* 496, https no certificate */

ngx_string(ngx_http_error_497_page), /* 497, http to https */

ngx_string(ngx_http_error_404_page), /* 498, canceled */

ngx_null_string, /* 499, client has closed connection */

可以看到,最后一行 499 表示客户端关闭连接。很有可能是因为服务器端处理时间(等待response的时间)过长,客户端“等不及了”。就给关闭(close)了。

具体解决办法:

编辑nginx.conf

增加如下参数:

client_header_timeout 3m;

client_body_timeout 3m;

send_timeout 3m;

proxy_ignore_client_abort on;



#控制nginx请求后端tomcat超时使用,配置时间加长可以有效解决由于client关闭服务导致的 gateway 504;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffer_size 4k;

proxy_buffers 32 4k;

proxy_busy_buffers_size 64k;


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: