I wouldn't use it. Use the right tool for the right job.
Nginx is good at caching but Varnish is often better.
HAProxy is far better suited to providing load-balanced HA. Regarding this article, this API makes is ideal to dynamically-reconfigure HAproxy, adding and removing servers on-the-fly, which is super-useful in production.
Nginx has widely used modules, business logic can be run in the same worker process with proxy. And it is easy to find enough developers to develop a relatively complex business support system based on nginx module system.
Haproxy itself is efficient as a proxy, however, developing a business system requires a lot of interaction between proxy and the business control processes.
I'm not sure why companies with a budget would use it, but if you want health-checks without paying, you use HAProxy. nginx excludes this for the open source version. Which really makes me unhappy. But so it goes.
I use both in my applications. nginx for reverse proxy on my python boxes and HAProxy to manage all of them.
nginx has more development activity. Eg, nginx has had http/2 support for a couple of years, HAProxy has for a couple of days. HAProxy is excellent - even it's stats module costs a couple of thousand bucks for a proprietary module per instance on nginx - but nginx seems to move faster.
It always seems to me as if haproxy was the superior tool with worse UX/configurability than nginx.