web-dev-qa-db-ja.com

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

これは私たちのシステムではかなりうまく機能します。4つのバックエンドWebサーバー、1つのフロントエンドWebサーバー、タイムアウトが適切に設定されています。

私の問題は、URLが1つあるため、タイムアウトを大幅に長くする必要があることです。バックエンドで長い時間がかかる非常に重いタスクです。

単一のURLのタイムアウト変数を変更する方法はありますか?

4
grufftech

1つのフロントエンドを2つのバックエンドに作成します

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 client 600s
        timeout server 600s

これにはurl_dirが最適なオプションだと思いますが、path_sub/regまたはurl_sub/reg( http://code.google.com/p/haproxy-docs/wiki/MatchingLayer7 )を確認することをお勧めします。 )

5