Nginx的 HTTP 499 状态码处理



1、前言

今天在处理一个客户问题,遇到Nginx access log中出现大量的499状态码。实际场景是:客户的域名通过cname解析到我们的Nginx反向代理集群上来,客户的Web服务是由一个负载均衡提供外网IP进行访问,负载均衡后面挂了多个内网web站点业务服务器。出现的访问日志如下所示:

Nginx的 HTTP 499 状态码处理

2、处理方法

499错误是什么?让我们看看NGINX的源码中的定义:
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对应的是 “client has closed connection”。这很有可能是因为服务器端处理的时间过长,客户端”不耐烦”了。

测试nginx发现如果两次提交post过快就会出现499的情况,看来是nginx认为是不安全的连接,主动拒绝了客户端的连接.

在google上搜索到一英文论坛上有关于此错误的解决方法:
proxy_ignore_client_abort on;
Don’t know if this is safe.

就是说要配置参数 proxy_ignore_client_abort on;
表示代理服务端不要主要主动关闭客户端连接。

以此配置重启nginx,问题果然得到解决。只是安全方面稍有欠缺,但比总是出现找不到服务器好多了。

冷静思考,勇敢面对,把握未来!

Original: https://www.cnblogs.com/Anker/p/7078497.html
Author: Rabbit_Dale
Title: Nginx的 HTTP 499 状态码处理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/543611/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • malloc 的线程安全与不可重入性

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Java 2022年9月22日
    0172
  • 限流常见方案

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Java 2022年10月11日
    0156
  • 2021网络协议从入门到底层原理2《小码哥》

    应用层的常见协议 2021网络协议从入门到底层原理2 1、超文本传输:HTTP、HTTPS2、 文件传输:FTP3、电子邮件:SMTP、POP3、IMAP4、 动态主机配置:DHC…

    Java 2023年6月7日
    026
  • 获取一个字符串中的指定字符

    在写代码的过程中总是会遇到提取字符传中想要的部分,但每次遇到的情况不一样,在这里做个总结 例如:9天,取出数字 9 String Str = "9天…

    Java 2023年6月8日
    021
  • MySQL相关事项

    重启MySQL service mysql stop service mysql start service mysql restart 创建MySQL用户并允许远程访问 CREA…

    Java 2023年6月5日
    024
  • 线上问题排查常用命令,总结太全了,建议收藏!!

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Java 2022年9月21日
    0196
  • 红黑树

    2-3-4树 JAVA技术交流群:737698533 定义 所有的叶子节点都拥有相同的深度 节点只能是2-节点,3-节点,或者4-节点 2节点 包含一个元素的节点,有两个子节点 3…

    Java 2023年6月6日
    029
  • ZMQ示例:使用 curve 进行加密通信

    1. ZMQ 官方文档 官方文档中提到的几个点都很关键: 一个 curve socket 既可以是服务端,也可以是客户端。但不可以既是服务端的同时又是客户端 一个 socket 可…

    Java 2023年5月30日
    018
  • Makefile 简介

    一、引例: Makefile objects=test1.o test2.o main:$(objects) gcc -o main $(objects) clean: rm ma…

    Java 2023年6月5日
    024
  • Spring Boot2配置Swagger2生成API接口文档

    一、Swagger2介绍 前后端分离开发模式中,api文档是最好的沟通方式。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服…

    Java 2023年6月15日
    020
  • hashMap、ConcurrentHashMap、hashTable、TreeMap、LinkedHashMap用法区别详解

    hashMap 底层结构是:数组+链表+红黑树(jdk1.8之前就是存储的数组+链表) 说明: 数组的&#…

    Java 2023年6月5日
    024
  • java集合框架学习笔记

    思维导图 ; 一、什么是集合 存放在java.util.*。是一个存放对象的容器。 存放的是对象的引用,不是对象本身 长度不固定 只能存放对象 二、collection接口 col…

    Java 2023年6月13日
    016
  • ReadWriteLock 接口详解

    ReadWriteLock 接口详解 这是本人阅读ReadWriteLock接口源码的注释后,写出的一篇知识分享博客 读写锁的成分是什么? 读锁 Lock readLock(); …

    Java 2023年6月5日
    033
  • elasticsearch7.6.1版本+jsoup爬取京东商品数据并使用

    实战: elasticsearch7.6.1版本+jsoup爬取京东商品数据并使用 前言 本文的实战需求是:从京东网页上拉去对应【关键字】的数据且存放到elasticsearch(…

    Java 2023年6月5日
    031
  • springboot配置rabbitmq的序列化反序列化格式

    SpringBoot封装了rabbitmq中,发送对象和接收对象时,会统一将对象和消息互相转换 会用到MessageConverter转换接口 在发送消息时, 会将Object转换…

    Java 2023年5月30日
    025
  • springboot修改接口入参出参实现入参加密出参解密

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Java 2022年9月22日
    0146
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球