一    长连接和短连接概念

1) 'HTTP'的长连接和短连接'本质'上是'TCP'长连接和短连接2) 在'HTTP/1.0'中默认使用'短'连接;解读:客户端和服务器'每进行一次HTTP操作',就'建立一次tcp连接',任务结束就'中断'连接

长连接和短连接的形象比喻

二   nginx如何做到长连接

重点:'服务器'和'客户端'都要进行设置,也即'长连接'要客户端和服务端都支持思考:哪些场景必须使用'长连接'? -->已知:'chunk'、'websocket'

①    client 和 nginx 保持长连接

1)keepalive_timeout

2)keepalive_requests

 

了解keepalive_disable即可

3)keepalive_timeout 和 keepalive_request 关系

②    nginx保持和后端服务器[上游、源站]的长连接

1)典型的配置

让nginx和后端server"[nginx称为upstream]"之间保持长连接http {upstream backend {...keepalive 300; // 这个很重要,一般'默认'}   location / {proxy_pass http://backend;proxy_http_version 1.1;                         # 设置http版本为1.1# 机制:转发请求头为空字符串,不会透传# 由于HTTP/1.1不指定Connection,默认是'keepalive'长连接proxy_set_header Connection "";                 # 设置Connection为长连接}
}

2)upstream的keepalive指令设置

说明: 一般保持'默认'值即可含义: nginx向这'一组'upstream中,最多'保持'多少个'空闲的tcp连接'用于'http keepalive'请求

官方keepalive指令解读

关于 Nginx upstream keepalive 的说明

keepalive_requests keepalive_time

2) proxy_http_version

3)proxy_set_header

proxy_set_header Connection ""; 设置为""空值,则'不会传递'给后端服务器,相当于不指定'Connection'请求头# proxy_set_header Connection 默认是'close',会'关闭'长连接;# HTTP/1.1,如果不指定'Connection'请求头,默认值是'keep-alive',长连接思考:HTTP/1.0如何建立长连接,协议'不一致'场景

http协议中connection头的作用

Connection RFC解释

④  了解ntlm即可

使用NTLM的windows身份验证的nginx反向代理

优点:实现nginx代理ntlm验证,'无需lua编码'或使用商业版nginx plus

三      高级技巧

说明:关于'upstream'中的'keepalive'指令不再赘述备注:只列出两个'核心'配置核心:客户端自定义'请求头',决定'是否使用'长连接

浏览器提供的开发者工具通过Connection ID判断是否是长连接

tcpdump查看Nginx长连接还是短连接

长连接和端连接的应用场景

nginx与tomcat、client之间请求的长连接配置不一致问题解决  查看连接过程中socket状态

四    案例

①    现象

说明:'具体复现'后续有时间了再'重现'

nginx 分发请求错误日志报错upstream sent invalid chunked response while reading upstream

②    解决策略

背景:'nginx和upstream'之间通信,'nginx侧'未配置'长连接'导致+++++++ location中'设置如下'即可 +++++++proxy_http_version 1.1;                         # 设置http版本为1.1proxy_set_header Connection "";                 # 设置Connection为长连接

③     chunk分片传输原理

client知道响应体大小的三种方式

④      nginx的chunk模块

一个是'内置的ngx_http_chunked_filter_module',是一个filter的模块,是'默认编译'进去的1) 必须是'开启长连接'的HTTP/1.12) 请求和响应双方必须'同时存在'该头

其它参考

⑤    nginx关闭chunked

++++++++++++'取消掉Transfer-Encoding:chunked'++++++++++++方式1:'不让'服务器"这里特指nginx的后端服务器"返回Transfer-Encoding:chunked,在客户端"nginx端"请求的时候可以'使用http 1.0'的协议。方式2:'nginx侧'-->chunked_transfer_encoding off;

nginx(二十七)长连接和短连接相关推荐

  1. nginx做grpc负载均衡时长连接或者短连接

    nginx设置响应连接是长连接或者短连接 https://blog.csdn.net/qq_21127151/article/details/106880632 nginx反向代理时保持长连接 htt ...

  2. nginx设置响应连接是长连接或者短连接

    根据需求,需要使用nginx返回长连接和短连接响应. 配置思路 长连接: http {---------------------------keepalive_requests 100000; //这 ...

  3. nginx长连接与短连接性能对比

    上一篇文章搭建了plg日志监控,本次准备看下目前集群的性能.对应机器如下:虚机4,前一后三,4台配置均为4核4g物理机为20核32g台式机. 先进行原始nginx配置的压测 nginx配置如下: us ...

  4. [转]TCP(HTTP)长连接和短连接区别和怎样维护长连接

    原文链接 一.HTTP协议和TCP协议 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问题, ...

  5. java如何实现Socket的长连接和短连接

    讨论Socket必讨论长连接和短连接 一.长连接和短连接的概念 1.长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接:后者是每次请求,都新建 ...

  6. android socket 长连接_TCP/IP,http,socket,长连接,短连接

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 上一篇:这300G的Java资料是我师傅当年给我的,免费分享给大家 下一篇:这200G的Java实战资料是我师傅当年教 ...

  7. [网络]------长连接和短连接

    本文重点介绍: 长连接和短连接的定义,优缺点以及使用场景 前提须知: 1.HTTP/1.0默认使用短连接,HTTP/1.1开始,默认使用长连接 2.HTTP协议的长连接和短连接,实质是就是TCP协议的 ...

  8. HTTP长连接、短连接使用及测试

    https://www.cnblogs.com/shoren/p/http-connection.html   漫夭   博客园   首页   新随笔   新文章   联系   订阅   管理 pos ...

  9. golang长连接和短连接的那些事儿

    文章目录 一.TCP长连接和短连接区别 1.1 长连接.短连接概念 1.2 长连接.短连接的传输过程区别 1.3 长连接与短连接的优缺点 二.TCP长连接和短连接应用场景 2.1 长连接应用场景 2. ...

  10. 性能测试能力提升-长连接、短连接、连接池

    目录 一.背景 二.长连接.短连接 三.连接池的作用 四.连接池配置定义 五.连接池设置考虑的因素 六.Redis连接池补充知识 一.背景 接着上一篇的知识:性能测试能力提升-基准.负载.压力.容量测 ...

最新文章

  1. Sql Server 中锁的概念
  2. 言论丨十问陆奇:百度如何才能赢得AI的未来?
  3. 万物新生(爱回收)递交赴美上市招股书,平台服务收入年复合增长达627.7%
  4. php微信支付分取消订单,微信支付PHP开发教程五关闭订单
  5. 一个iOS表单框架-UFKit
  6. LintCode 183. 木材加工(二分查找)
  7. MYSQL避免全表扫描__如何查看sql查询是否用到索引(mysql)
  8. adrms移动设备扩展插件_如何在所有移动设备上扩展网站
  9. 【译】索引进阶(八):SQL SERVER唯一索引
  10. 知乎:学习分布式系统需要怎样的知识?
  11. 基础软件照搬开源不可取,自力更生才是正途
  12. Microsoft.VisualBasic.dll的妙用(开发中肯定会用到哦)
  13. 《Graph Neural Network with Heterophily》阅读笔记
  14. 程序员做脚底鱼疗,因脚臭熏死一大批鱼,老板据说是这表情
  15. 金山云个人用户实名认证步骤详解(图文教程)
  16. linux下c语言按q退出_linux下C语言多线程(四)线程中止
  17. 计算机不小心办公软件,电脑表格不小心删除怎么恢复-互盾数据恢复软件
  18. 一招解决python pip install 安装库失败
  19. [转载] opencart支付宝 免费下载
  20. OSChina 周一乱弹 ——看见别人的工作台眼神都发光

热门文章

  1. 手机上测试东南西北方向软件,指南针怎么看东南西北(手机指南针怎么看图解)...
  2. 计算机中低级语言和高级语言的区别?
  3. Python实现csv与excel互转
  4. (转)移动端自适应方案
  5. 一个简单的ZUI多文件上传的demo和sql练习
  6. 求助,nodejs 在安装threads_a_gogo时报错
  7. 德国IT民工找工有感
  8. 用python做了个桌球瞄准器
  9. k近邻算法与kd树的创建和搜索
  10. 深入探访支付宝双11十年路,技术凿穿焦虑与想象极限