Your configuration works perfectly for me:
C:\Users\lukas>curl -v --resolve www.example.com:80:10.0.0.33 www.example.com/privacy-policy/
* Added www.example.com:80:10.0.0.33 to DNS cache
* Hostname www.example.com was found in DNS cache
* Trying 10.0.0.33...
* Connected to www.example.com (10.0.0.33) port 80 (#0)
> GET /privacy-policy/ HTTP/1.1
> Host: www.example.com
> User-Agent: curl/7.48.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Content-length: 0
< Location: http://www.example.com/privacy-policy
<
* Connection #0 to host www.example.com left intact
Kill all haproxy processes manually and restart it. I think you may have an old haproxy instances answering requests with an old configuration.
Also, try using noreuseport
in the global section if in doubt, and see if it reloads successfully.