HAProxy 特定 URI

HAProxy 特定 URI

所以我的 HAProxy 配置与此类似。

listen webaustin 0.0.0.0:80
    mode http
    timeout connect 12000
    timeout server 60000
    timeout queue 120000
    balance roundrobin
    option httpchk GET /index.html
    log global
    option httplog
    option dontlog-normal
    server web1 10.10.10.101:80 maxconn 600 check fall 10
    server web2 10.10.10.102:80 maxconn 600 check fall 10
    server web3 10.10.10.103:80 maxconn 600 check fall 10
    server web4 10.10.10.104:80 maxconn 600 check fall 10

对于我们的系统来说,这非常有效,四个后端网络服务器,一个前端网络服务器,超时设置合理。

我的问题是,我有一个 URL,我需要更长的超时时间。这是一项非常繁重的任务,需要后端花费很长时间。

有没有办法改变单个 URL 的超时变量?

答案1

创建一个前端到两个后端

frontend webserver
        bind :80
        option forwardfor
        acl bk_slow url_dir /slow_uri/
        use_backend slow-pool if bk_slow
        default_backend default-pool

backend default-pool
        balance ...
        option httpchk ...
        server ...

backend slow-pool
        balance ...
        option httpchk ...
        server ...
        timeout server 600s
由于它是一个后端,并且 haproxy 会对此发出警告,因此 超时客户端 600 秒 是没有必要的。

我认为 url_dir 是最好的选择,但你可能需要检查 path_sub/reg 或 url_sub/reg (http://code.google.com/p/haproxy-docs/wiki/MatchingLayer7

相关内容