11赞
326
当前位置:  开发笔记 > 编程语言 > 正文

当重新加载nginx配置时,在没有Connection:close的情况下,在完成后关闭http1.1请求

如何解决《当重新加载nginx配置时,在没有Connection:close的情况下,在完成后关闭http1.1请求》经验,应该怎么弄,您有好建议吗?

我们观察到,如果我们重新加载nginx配置,则正在进行的HTTP 1.1请求成功完成但没有Connection:close会导致客户端尝试重新使用已关闭的连接.通过使用两个请求进行卷曲可以轻松地再现该行为,其中在第一个请求期间,我们通过HUP信号重新加载nginx配置.

curl -v  -H "Host: foo.bar.host" "http://proxy1:4080/do-it-takes-time-and-reload-is-called" "http://proxy1:4080/do-it"

* Connected to proxy1  (xx.xxx.xxx.xxx) port 4080 (#0)
>GET /do-it-takes-time-and-reload-is-called HTTP/1.1
> Host: foo.bar.host
> User-Agent: curl/7.54.0
> Accept: */*



虽然这个长期存在的请求是在战斗中我们做了一个kill -HUP来重新加载配置但是注意响应如何表示Connection:keep-alive所以curl试图重新使用连接但服务器不想要任何这样的请求被拒绝(RST)

* Found bundle for host proxy1 0x7f96e980f510 [can pipeline]
* Re-using existing connection! (#0) with host proxy1
* Connected to proxy1 (xx.xxx.xxx.xxx) port 4080 (#0)
> GET /do-it HTTP/1.1
> Host: foo.bar.host
> User-Agent: curl/7.54.0
> Accept: */*
> 
* Connection died, retrying a fresh connect
* Closing connection 0
* Issue another request to this URL: .. 

那么有没有办法让nginx用一个Connection礼貌地结束对话:在配置重新加载时关闭?


推荐阅读
  • Sublime text3配置C/C++编译环境
    安装sublimetext3后,一直很喜欢使用它看代码(这个高亮配色真的很好看)。它默认的运行环境就有CC++,在写了一个helloworld!后正常输出,但在加入scanf()输 ... [详细]
  • 报错:dpkg:errorprocessingpackageubuntu-core-launcher(--configure): dependencyproblems-leavin ... [详细]
  • react.js 从零开始(二)组件的生命周期
    什么是生命周期?组件本质上是一个状态机,输入确定,输出一定确定。当状态改变的时候会触发不同的钩子函数,可以让开发者做出响应。。一个组件的生命周期可以概括为初始化:状态下可以自定义的 ... [详细]
  • nginx利用反向代理调试后台接口
    1、location支持配置项目的绝对路径2、假设我们的后台API地址是以API开头,location^~api代表nginx将会拦截请求地址中包含api字样的请求,其实这就是 ... [详细]
  • 无标题页usingSystem;usingSystem.Data;using System.Configuration;usingSystem.Collections;using ... [详细]
  • https:nacos.ioen-usdocsquick-start-docker.htmlhttps:github.comnacos-groupnacos-dockermkdir ... [详细]
  • Ubuntu环境变量分为系统级环境变量和用户级环境变量。顾名思义,设置在系统级环境变量中的配置项作用范围为全系统,而设置在用户级环境变量中的配置项仅对当前用户起作用。系统及环境变量 ... [详细]
  • pipinstallbootstarp使用bower安装bootstrap的命令是:bash$bowerinstallbootstrap不过问题出在如何安装bower上。官方网站上 ... [详细]
  • 1,效果图:[groot]$2,设置步骤:编辑~.bashrc文件,在最后增加设置行:#显示当面目录的最后一层目录#PS1'\[\e[32m\][\u@\h\W]$\[\e ... [详细]
  • 客户端有多个地方需要使用Javaclient:在存在的集群中执行标准的index, get, delete和search在集群中执行管理任务当你要运行嵌套在你的应用程序中的Elas ... [详细]
  • SICP习题2.22是习题2.21的后续题目,题目中讲到叫LouisReasoner的人想重写suqare-list过程,希望使用迭代计算过程,而不是递归计算过程,有关迭代计算过程 ... [详细]
  • 一、paramiko模块paramiko是用Python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。paramiko主要是通过ssh协议对远程 ... [详细]
  • 255)fc255;if(bc255)bc255;intrfc+random.nextInt(bc-fc);intgfc+random.nextInt(bc-fc);intbfc ... [详细]
  • 概述通过该手册,用户可以将XDOC服务集成到自己的应用中。XDOC以HTTP协议对外提供服务,支持GET和POST两种请求方式。参数加在服务地址后面进行传递。参数名和值必需用UTF ... [详细]
  • 如何使用jQuery实现一个类似GridView编辑,更新,取消和删除的功能
    这篇文章主要为大家展示了“如何使用jQuery实现一个类似GridView编辑,更新,取消和删除的功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑 ... [详细]
author-avatar
yvli心语
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有