Conversation

They still use a substantially modified fork of nginx which has diverged more and more and does much more. They use multiple types of nginx instances of it on every node. Substantially different from upstream project and they're gradually replacing it with homegrown stuff.
1
1
nginx's own caching reverse proxy support and other features are far more primitive and they gradually replaced almost all of it with their own code to the point that it's not really nginx anymore. They tried to upstream a bit but it mostly didn't go anywhere and it's too late.
1
A problem with nginx as an open source project is they have an open core model where a bunch of important and even very basic features are part of NGINX Plus instead of open source nginx. Simple example: nginx permanently caches DNS result for each host entry in upstream blocks.
2
I'll believe it when I see it. Their business model is at odds with an open source project accepting contributions, since they get their money from implementing features based on contract work and selling access to features exclusively available in NGINX Plus. Doesn't mix well.
2
1
Probably a mix of both. They probably don't like to maintain a bunch of core features in NGINX Plus. A particularly frustrating thing is that you can see a bunch of stubs for proprietary features in the open source nginx since they do make things convenient for themselves.
1
It's one of those projects that theoretically takes contributions but where in reality it's extremely hard to get them to accept any features not directly requested by their customers and they may want to write it themselves to get paid by them anyway. It's fairly frustrating.
1
That pause might have something to do with Russia's invasion of Ukraine since F5 is American with a bunch of Russians still working for them (nginx originated there). nginx hosts more than half the web but doesn't get the resources you'd expect and barely takes contributions.
1
Show replies
It needs a LOT of work. It's not actually that great at caching features, is missing non-blocking open, stat, etc. (anything other than read/write), no io_uring support, no dynamic TLS record size, needs custom scripts for session ticket rotation, persistent OCSP cache, etc.