Mik*_*evy 9 timeout haproxy keepalive keep-alive apache-2.2
我正在努力思考 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 # I just commented this out in favor of http-server-close
option http-server-close
timeout http-keep-alive 500 # from the haproxy manual suggestion of "tens to hundreds of ms"
timeout http-request 5000
option forwardfor
stats enable
stats uri /my-lb-status
stats auth myLbStatus:123456
reqadd X-Forwarded-Proto:\ http
option httpchk GET /robots.txt HTTP/1.0
server SERVER_A 1.2.3.4:80 cookie app_01 check
server maintenance 127.0.0.1:8080 backup
Run Code Online (Sandbox Code Playgroud)
最终,我的目标是能够在浏览器和 haproxy 之间打开保持活动状态,并要求能够运行报告,该报告可能需要 2-3 分钟才能在应用服务器上运行。
edl*_*erd 20
只是为了澄清一点。我希望这也能回答你的问题。
超时http请求
是从收到第一个客户端字节到发送到客户端的最后一个字节的时间(无论是否保持活动)。因此,如果您的后端太慢或客户端发送请求太慢,则整个通信可能需要比这更长的时间,并且请求会被丢弃(并向客户端发送超时)。
超时http-keep-alive
在 haproxy 和客户端之间保持连接打开的时间(在发送客户端响应之后)。这与后端响应时间无关。这与单个请求的长度(即 http-request 超时)无关。如果用户请求多个资源(即 html、img 和 js),这允许更快的响应。通过保持活动,单个请求可以使用相同的 tcp 连接。这样可以减少整个网页的加载时间。
超时服务器
这是您的后端服务器的超时时间。到达时,haproxy 回复 504(网关超时)。这也与保持活动无关,因为它仅与代理和后端之间的连接有关。
归档时间: |
|
查看次数: |
30887 次 |
最近记录: |