尝试做标题中所说的:在高负载下保留现有会话,并向新到达的访问者提供 503 消息。
问题:它有效,但会话不会持续超过大约 90 秒。
目前的结果让我想知道是否有我缺少的超时设置。
我试图让haproxy:
这样,正在填写多步骤表单的访问者不会对 503 错误感到惊讶,并且可以告诉新访问者“请稍后再回来,因为我们现在真的很忙”。
设置如下:
{visitors}
?
[haproxy]
?
[rails app on unicorn served by nginx] (right now just one
backend: 'backend-001')
Run Code Online (Sandbox Code Playgroud)
为了实现上述目标,我正在使用以下配置。
这个是用于测试的,有一个非常低的限制(前端10个连接(fe_conn gt 10)),使测试更容易。
为了让服务器承受一定的负载,我使用 httperf 如下:
httperf --hog --server staging.machine.tld --uri /do_some_things --wsess=500,10,30 --rate 2
global
daemon
maxconn 10000
defaults
mode http
timeout connect 6s
timeout client 60s
timeout server 60s
balance roundrobin
option http-server-close
frontend http-in …Run Code Online (Sandbox Code Playgroud)