use*_*814 5 keep-alive haproxy
在我的环境中,我有2个Web服务器(Apache)的haproxy负载平衡,这是我的HA代理配置:
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
tune.ssl.default-dh-param 2048
daemon
nbproc 1
stats socket /var/lib/haproxy/stats
stats timeout 1m
nogetaddrinfo
listen front
bind :80
redirect scheme https if { hdr(Host) -i domain.com } !{ ssl_fc }
listen front_ssl
bind :443 ssl crt /opt/certificate/domain.pem
mode http
option dontlognull
stats enable
stats uri /ha?stats
stats realm system
stats auth root:*********
stats refresh 5s
option http-keep-alive
option forwardfor
option redispatch
reqadd X-Forwarded-Proto:\ https if { ssl_fc }
timeout client 15s
timeout connect 3s
timeout server 15s
timeout http-request 15s
timeout http-keep-alive 15s
default_backend bk_http
backend bk_http
mode http
balance source
option http-keep-alive
default-server inter 1s
retries 3
timeout connect 3s
timeout server 15s
timeout queue 60s
timeout check 10s
timeout http-request 15s
timeout http-keep-alive 15s
server node1 1.2.3.4:82 check id 1 weight 1 maxconn 2000 maxqueue 2000
server node2 5.6.7.8:82 check id 1 weight 1 maxconn 2000 maxqueue 2000
Run Code Online (Sandbox Code Playgroud)
/etc/httpd/conf/httpd.conf中的"KeepAlive On"但是当我用curl测试时,我发现keepalive不起作用:
curl -Iv http://domain.com 2>&1 | grep -i 'connection #0'
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Closing connection #0
curl -Iv https://domain.com 2>&1 | grep -i 'connection #0'
* Closing connection #0
Run Code Online (Sandbox Code Playgroud)
据我所知,如果keepalive正在运行,结果应该是:
0 162 0 0 0 0 0 0 --:--:-- 0:00:05 --:--:-- 0* Connection #0 to host domain.com left intact
* Closing connection #0
Run Code Online (Sandbox Code Playgroud)
如果我的配置有问题,请告诉我?
KCD*_*KCD 10
您有正确的配置.您只需option http-keep-alive要从haproxy 1.5开始默认哪个是默认值.请检查您安装的版本.
请参阅http://www.haproxy.org/download/1.5/doc/configuration.txt第4节.代理
在HTTP模式下,应用于通过连接的请求和响应的处理取决于前端的HTTP选项和后端的组合.HAProxy支持5种连接模式:
KAL:保持活动("选项http-keep-alive")这是默认模式:处理所有请求和响应,连接保持打开但在响应和新请求之间保持空闲.
TUN:tunnel("选项http-tunnel"):这是版本1.0到1.5-dev21的默认模式:只处理第一个请求和响应,其他所有内容都转发,根本没有分析.不应使用此模式,因为它会在日志记录和HTTP处理方面造成很多麻烦.
PCL:被动关闭("选项httpclose"):与隧道模式完全相同,但在两个方向上附加"连接:关闭"以尝试在第一次请求/响应交换后使两端关闭.
SCL:服务器关闭("选项http-server-close"):在收到响应结束后,面向服务器的连接将关闭,但面向客户端的连接仍保持打开状态.
FCL:强制关闭("option forceclose"):在响应结束后主动关闭连接.
您的后端node1/node2可能正在关闭连接.他们可能没有启用Keepalive.
如果您拦截了http/1.1的流量检查而没有"Connection:close"标头
| 归档时间: |
|
| 查看次数: |
24094 次 |
| 最近记录: |