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的默认值,就是长连接

总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值