当前位置: 首页 > ds >正文

nginx实战总结-keepalive\keepalived\keep-alive

一、前言

我们在接触nginx的时候,经常会听到keepalived\keepalive\keep-alive这些词汇,很容易搞乱,这边针对这些名词,进行总结。

二、概述

  • keepalived:高可用的解决方案,在nginx中就是负责将多台nginx集群,实现高可用,详细的内容,有主备模式和双主模式,之后的篇幅,进行描述
  • keepalive: 这个tcp相关,保活,之后扩展
  • keep_alive:这个跟http相关,也就是我们常说的长连接,如果请求头connect close 表示关闭长连接,如果为keep-alive,则打开长连接,1.0默认close,1.1默认keep-alive,反向代理,建议使用长连接

三、长连接

一般我们说的长连接的情况有两种:

  • 客户端和nginx的长连接
  • nginx和服务端的长连接

四、保持和客户端的长连接

http {keepalive_timeout  300s;keepalive_requests 10000;
}
  • keepalive_timeout 默认75秒,可以设置成0,代表短连接
  • keepalive_requests 默认100个请求,用于设置一个keep-alive连接上可以服务的请求的最大数量,然后达到数量,执行好之后,就会被关闭,如果这个值很小,会不停的销毁、创建,会产生大量的TIME_WAIT,因此为了避免这种情况发生,将这个值设置大点,比如10000

五、保持和服务端的长连接

nginx访问后端,默认都是使用短连接(http1.0),一个请求来了,nginx就会新开一个和后端的连接,后端执行完毕后,主动关闭该连接。

http {upstream  BACKEND {...keepalive 300;        // 空闲等待时长 单位秒}
server {listen 8080 default_server;server_name "";location /  {...proxy_http_version 1.1;       proxy_set_header Connection "";}}
}

解释说明:

  • keepalive 300 空闲等待时长,在这个时间内,请求可以共用这个tcp连接,超过这个时间,就关闭
  • proxy_http_version 1.1;nginx默认是http1.0请求,1.1的请求默认是长连接
  • proxy_set_header Connection “”;清空header的连接信息,因为有可能客户端和nginx的连接是短连接,如果传过来的话,就会将nginx和服务端的连接变成短连接,然后你这边把他给清空掉,就可以用http1.1的默认,正好http1.1的默认值,就是长连接

总结

这边主要将长连接的问题,其他的内容,之后篇幅进行说明

http://www.xdnf.cn/news/11802.html

相关文章:

  • 一文带你快速上手 Rollup
  • wampserver安装及如何使用
  • 智能汽车虚拟化(Hypervisor)技术详解_汽车操作系统中的虚拟化(1)
  • CentOS 所有下载
  • DevExpress 概述
  • DDS原理及FPGA实现
  • Codeforces(1500题目汇总)
  • 全文发布|SmartX 金融行业跑批类业务场景探索与实践合集
  • 单例模式详解
  • Java图像编程之:Graphics
  • sudo命令及权限管理命令
  • UEDITOR1.4.3.3整合教程
  • ACM竞赛及备战建议
  • 对IOC和DI的通俗理解
  • JAVA环境变量配置详解(全网最新详细教程)
  • 用RStudiod的界面来读取数据
  • Thread、ThreadLocal、ThreadLocalMap
  • 一文带你详细了解JVM运行时内存
  • POM及POM设计原理
  • Umi安装教程
  • 沉没成本
  • 整合StarRocks主键表全部知识点
  • iframe标签常见问题和解决方法(持续更新)
  • 我们公司用了7年的Dubbo架构技术栈(稳的一批),这套架构真绝了!
  • VNC虚拟网络控制台(概述、windows系统连接linux系统演示)
  • Spring Boot核心原理
  • 《康熙王朝》剧情分集介绍【全】
  • 新鲜出炉的JSON,拿走不谢!
  • 充分且简单!使用 Express 打造专属“轻量代理神器”
  • Java小白一文简单普及Java中的String关键字