# This is a test configuration.
# It is used to check that time units are correctly parsed.

global
	maxconn    1000
        stats timeout 3s

listen  sample1
        mode       http
        retries    1
        redispatch
        timeout    client  15m
        timeout    http-request 6s
        timeout    tarpit  20s
        timeout    queue   60s
        timeout    connect 5s
        timeout    server  15m
        maxconn    40000
        bind       :8000
        balance    roundrobin
	option     allbackups
        server     act1 127.0.0.1:80 weight 10 check port 81 inter 500ms fall 1
        server     act2 127.0.0.2:80 weight 20 check port 81 inter 500ms fall 1
        server     act3 127.0.0.3:80 weight 30 check port 81 inter 500ms fall 1
        option     httpclose
	stats      uri /stats
	stats      refresh 5000ms
