Haproxy开启keep-alive配置

简介:

haproxy 1.5之后的版本支持5种连接方式


  - KAL : keep alive ("option http-keep-alive") which is the default mode : all

    requests and responses are processed, and connections remain open but idle

    between responses and new requests. 默认的保持连接方式


  - TUN: tunnel ("option http-tunnel") : this was the default mode for versions

    1.0 to 1.5-dev21 : only the first request and response are processed, and

    everything else is forwarded with no analysis at all. This mode should not

    be used as it creates lots of trouble with logging and HTTP processing. HTTP隧道方式


  - PCL: passive close ("option httpclose") : exactly the same as tunnel mode,

    but with "Connection: close" appended in both directions to try to make

    both ends close after the first request/response exchange. 关闭方式


  - SCL: server close ("option http-server-close") : the server-facing

    connection is closed after the end of the response is received, but the

    client-facing connection remains open. 服务端关闭方式


  - FCL: forced close ("option forceclose") : the connection is actively closed

    after the end of the response. 强制关闭方式


说下强制模式(option forceclose):

HTTP 1.1默认情况下是使用保持连接方式,只要启用了option httpclose,服务器就会向客户端发送Connection:close.但是某些浏览器不认这个http-header,依然会采用保持连接方式,这个时候服务器如果配置option forceclose就会自动在连接完成后进行关闭。


所以如果需要开启keep-alive就只需要配置

option http-keep-alive

option http-server-close

timeout http-keep-alive 10s

timeout client 30s

#option nolinger   #如果发现TIME_WAIT过多的时候开启这个参数可以及时清理一些TCP连接,但是也会出现“连接被重置”,慎用


关闭keep-alive

option httpclose

option forceclose

#option nolinger


对比Connection:close

wKiom1c9cm6RI9-FAADShB5wC_c943.png

从上面可以看到存在150的建立连接,每次连接都请求一次

网络层的时间达到6.425秒


Connection:keep-alive

wKiom1c9c0zjs7tNAADN6wCof2I905.png

wKiom1c9c86Bab0HAABhDkQXLf8979.png


使用保持连接方式只建立了34次请求(只用了close的五分之一),请求数量就不是存在多个,可以极大的减少建立连接的时间,减少网络开销,网络层的时间也只用了4.897秒


本文转自 rong341233 51CTO博客,原文链接:http://blog.51cto.com/fengwan/1775083


相关文章
|
11月前
|
小程序 网络协议 应用服务中间件
nginx(二)服务器中配置超时时间的方法
访问超时这个事一般都是在nginx中配置的。 之前大脑发昏,一直研究PHP来着,后来发现,不行,PHP超时怎么配都不好用。 首先说一下配置的位置,是在每个域名的配置文件中配置的 我的域名配置文件如下:
456 0
|
存储 负载均衡 Kubernetes
Openresty动态更新(无reload)TCP Upstream的原理和实现
本文介绍了对Openresty或Nginx的TCP Upstream的动态更新(无需Reload)的一种实现方式,这种实现对于正在尝试做Nginx扩展的开发者是一种参考。文中我们对nginx结合lua对一次请求的处理流程和可扩展方式也进行了说明,重要的是给出了实际代码帮助开发者理解。目前社区中比如Kong、nginx-ingress-controller等基于Nginx扩展的项目都是类似的思路。
10887 1
Openresty动态更新(无reload)TCP Upstream的原理和实现
|
监控 关系型数据库 数据库
|
5月前
|
应用服务中间件 nginx
Nginx开启访问日志记录
Nginx开启访问日志记录
99 0
|
JavaScript 前端开发 应用服务中间件
解决504 GATEWAY TIMEOUT Nginx网关超时
解决504 GATEWAY TIMEOUT Nginx网关超时
3564 0
|
网络协议 Go
客户端禁用Keep-Alive, 服务端开启Keep-Alive,会怎么样?
最近部署的web程序,服务器上出现不少time_wait的tcp连接状态,占用了tcp端口,花费几天时间排查。
客户端禁用Keep-Alive, 服务端开启Keep-Alive,会怎么样?
|
监控 应用服务中间件 nginx
|
监控 负载均衡 网络协议