One key missing piece in nginx is a way to interact with the configuration without having to edit the config file. This is such a vital piece of a modern infrastructure; where backends are added/removed on demand.<p>You can interact with haproxy via lua[1] or use etcd to have traefik load its configuration[2].<p>Seeing how [as others also mentioned] nginx seems to favor pro customers in terms of functionality, it would only seem wise to choose another proxy/load balancer for your next project.<p>[1]: <a href="http://www.arpalert.org/src/haproxy-lua-api/1.7/#Proxy.servers" rel="nofollow">http://www.arpalert.org/src/haproxy-lua-api/1.7/#Proxy.serve...</a><p>[2]: <a href="https://docs.traefik.io/toml/#etcd-backend" rel="nofollow">https://docs.traefik.io/toml/#etcd-backend</a>
We're having great luck using traefik (<a href="https://traefik.io" rel="nofollow">https://traefik.io</a>) as a kubernetes ingress, we just couldn't get nginx working well and ever since the switch it's been rock-solid.
The only thing pretty bitter about Nginx is that the access to the server status in the open source community edition.<p>You get only so much with "ngx_http_stub_status_module" that you have to compile in yourself, as distros don't compile it in: <a href="https://nginx.org/en/docs/http/ngx_http_stub_status_module.html" rel="nofollow">https://nginx.org/en/docs/http/ngx_http_stub_status_module.h...</a><p>With Nginx plus you get access to so much more ("ngx_http_status_module") of the server status. It's not about the pretty frontend, it's about the values.<p><a href="http://nginx.org/en/docs/http/ngx_http_status_module.html" rel="nofollow">http://nginx.org/en/docs/http/ngx_http_status_module.html</a><p>Why isn't there a CentOS-style distro apt/rpm package of Nginx (think of free RedHat) with the status module enabled, as based on open source Nginx?
We used NGINX with Consul (template) and Vault quite extensively until I recently found out about eBay's Fabio ( <a href="https://github.com/eBay/fabio" rel="nofollow">https://github.com/eBay/fabio</a> ). Fabio is really great as an NGINX reverse proxy alternative in an environment with Consul or etcd. I highly recommend it.
On the topic of Nginx, does anyone know if it's possible/how one could fire off a http request (GET or POST) to an external service to log requests in real time (rather than say logging to a text file then processing that)?
I'm surprised by the lack of first-class ACME/Let's Encrypt support. I figured once Caddy paved the way in that regard that nginx wouldn't be far behind.