Hello, I recently upgraded to 1.8.1 and noticed a pretty big functional 
difference that I can't attribute to any listed change in the changelog. Here 
is my configuration:


global
    log /dev/log local0
    user nobody
    group nobody

defaults
    # set timeout to ten minutes
    timeout connect 5000ms
    timeout client 600000ms
    timeout server 600000ms

    option httplog
    option forwardfor
    option http-server-close
    option contstats

frontend unsecured
    bind *:80
    mode http
    log global
    redirect scheme https code 301 if !{ ssl_fc }

frontend secured
    bind *:443 ssl crt /usr/local/ssl/certs/example.com.pem
    mode http
    log global
    default_backend example-http

backend example-http
    mode http
    log global
    balance source
    hash-type consistent
    option httpchk GET /haproxy/alive.txt
    http-check disable-on-404
    server example01 example01.com:8443 check ssl ca-file 
/usr/local/ssl/certs/cacerts.cert
    server example02 example02.com:8443 check ssl ca-file 
/usr/local/ssl/certs/cacerts.cert
    server example03 example03.com:8443 check ssl ca-file 
/usr/local/ssl/certs/cacerts.cert


>From 1.7 to 1.8 the functionality in "http-check disable-on-404" seems to have 
>changed.

On 1.7.9, this configuration would cause a backend server to become unavailable 
if the path "/haproxy/alive.txt" returned a 404. The host would be marked 
"active or backup SOFT STOPPED for maintenance" and it would no longer be given 
new requests.

On 1.8.1, when "/haproxy/alive.txt" returns a 404 the host STAYS in the 
rotation and continues to receive new requests! I am able to work around it by 
removing "http-check disable-on-404" and then when the file disappears the host 
just goes to "active or backup DOWN". But the change from 1.7 to 1.8 was 
jarring and surprising and I did not see anything in the changelog indicating 
that this is supposed to have changed like this. Was I doing it wrong from the 
beginning?

Thank you for your help.
Paul Lockaby

Reply via email to