したがって、私の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のタイムアウト変数を変更する方法はありますか?
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 )を確認することをお勧めします。 )