我正在努力思考 haproxy 选项的方式
timeout http-request <timeout>
timeout http-keep-alive <timeout>
timeout server <timeout>
Run Code Online (Sandbox Code Playgroud)
彼此互动。我在位于 haproxy 负载均衡器后面的两个应用服务器上运行一个 Apache 网站。现在我没有启用 keep-alive,但我一直在尝试启用它,因为我认为它有助于优化网站。我的目标是为浏览器和 haproxy 之间的连接启用 keep-alive,但禁用 haproxy 和 apache 之间的 keep-alive。我用
option http-server-close
Run Code Online (Sandbox Code Playgroud)
现在我正在研究设置保持活动超时。我一直在研究超时 http-request 选项、超时 http-keep-alive 选项和超时服务器选项的haproxy 手册。如果我正确理解手册,超时 http-keep-alive 是在新请求之间保持连接打开的时间,超时 http-request 是在关闭连接之前等待响应标头的时间。但我似乎无法弄清楚的是超时服务器规定的内容。我想说超时服务器是等待完整响应的时间,但有人可以确认吗?如果我是对的,超时服务器是等待完整响应的时间,那么我是否正确,它不应该对保持活动超时设置有任何影响?
这是我正在修改的 haproxy 配置:
global
maxconn 4096
pidfile /var/run/haproxy.pid
daemon
defaults
mode http
retries 3
option redispatch
maxconn 5000
timeout connect 5000
timeout client 300000
timeout server 300000
listen HTTP *:80
mode http
cookie HTTP insert nocache
balance roundrobin
#option httpclose …Run Code Online (Sandbox Code Playgroud) 我需要分析我网络上的流量转储,以检查是否所有 PC 都启用了 tcp keep-live 功能。为此,我正在使用 tcpdump。
我需要知道的是是否有可能只过滤保持活动的数据包。
在 Windows 上,我看到 wireshark 可以做到这一点,但在我的只有控制台模式的 linux 系统上,我不知道如何过滤那种数据包。
我有一个 api,在 https 中我会收到很多请求。由于它是restful,每次发送api时,都需要进行一次完整的ssl握手。启用 http-keepalive 后,请求的延迟大大降低(第一个请求需要相同的时间,但后续请求与 http 一样快)。
现在,我正在试验亚马逊的 elb(我还将使用云前沿)。我的问题是,如何在相同的设置中保持活动状态,来自客户端的请求可以随机路由到不同的机器?
还是根本不可能在每次发出请求时阻止 ssl 握手?
我已经打开option http-keep-alive了默认设置,并在前端定义中尝试了它。
但是浏览器中的响应标头永远不会显示保持活动状态,尽管它存在于浏览器的请求标头中。使用 Chrome 作为浏览器。
haproxy 的后端是 apache 2.4 + php-fpm。HAProxy 1.5.3 版
谢谢