Enable logging, then you will see the reason the connection was closed,
I guess there is a connection timeout somewhere. Logging will help you
find out where exactly.
A few comments about your configuration:
> noepoll
> nokqueue
> nopoll
> nosepoll
> nosplice
Exactly what are you trying to achieve by disabling all this? How was
haproxy build (haproxy -vv) and what is the OS and kernel?
> nbproc 20
Do you really need this? Are you sure a single process is not
enough? How much traffic are you handling and what is your hardware?
> tune.maxaccept -1
Why are you disabling maxaccept, can you elaborate this?
> optionĀ http-no-delay
Same here, does your application really needs this?
> option http-pretend-keepalive
Do you have a buggy backend which requires you to set this?
I'm not saying your configuration is wrong, but the keywords
you configured are normally not necessary and usually configured
to cope with problems like backend, OS, kernel bugs and design
issues.
That being said, none of those configurations should be
responsible for the issue you are seeing, but they likely
harm performance.
Lukas