小编Ape*_*tje的帖子

haproxy:在高负载下保留现有会话,为新来者提供“503”服务

尝试做标题中所说的:在高负载下保留现有会话,并向新到达的访问者提供 503 消息。

问题:它有效,但会话不会持续超过大约 90 秒。

目前的结果让我想知道是否有我缺少的超时设置。

目的

我试图让haproxy:

  • 当前端的会话总数低于某个阈值时,将会话的请求发送到 backend-001。
  • 当前端的会话总数高于该阈值时,向会话提供 503 错误
  • 即使会话数超过阈值,也允许对现有会话的请求

这样,正在填写多步骤表单的访问者不会对 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)

proxy haproxy

12
推荐指数
1
解决办法
1321
查看次数

标签 统计

haproxy ×1

proxy ×1