Nginx 499 问题

场景

项目发现某个接口异常,查看nginx日志是499错误,request_time大概是0.2s。谷歌后了解到nginx的499错误是用户主动断开连接导致的,哪怕接口并不是很慢。

如何模拟499

curl -m 0.01 "http://192.168.0.1/common/getDepart"
curl: (28) Operation timed out after 10 milliseconds with 0 bytes received

如何改进

nginx收到用户主动断开请求,默认是直接断开后端反向代理的。虽然用户那边已经无法改善,但是可以用nginx日志记录此次后端的真实响应过程(此次请求用户端虽然已经断开,nginx也断开了后端代理,但是后端其实仍然完整处理了任务),比如upstream_status和upstream_response_time(默认nginx都是记录的-)。如何记录呢,在nginx配置文件的server端加上:

fastcgi_ignore_client_abort on; //如果后端是fastcgi,比如php-fpm
proxy_ignore_client_abort on;  //如果后端是http服务
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!