Nginx v1.10.0 Stable Version Released
nginx.org
nginx.org
Also, there really should be separate docs for the open source vs paid plan.
That said, I do plan on kicking the tires on the HTTP/2 support.
Sadly, this is how the developers of nginx can earn and continue to make good software. Some of the new features in this release has been directly supported by the commercial edition, and some has been open sourced after being made for the commercial edition because clients demanded them.
Also, the nginx team is open to a feature being sponsored by a third-party, non-client in order to add it to the open source edition. Some of the significant features in nginx have been built this way (http/2, spdy, websocket support etc.)
If nothing, even patching or writing modules for nginx is not that hard (assuming you know how to develop, and in C). It is one of the more well-designed codebases. (Some others are: Redis, Postgres, Git).
> there really should be separate docs for the open source vs paid plan
I thought nginx.org contained only open-source info, save for an occasional ad about the paid offering. Is there any documentation on nginx.org that doesn't apply to the open source edition?
"Dynamically configurable group, available as part of our commercial subscription:"
"Additionally, the following parameters are available as part of our commercial subscription:"
"This directive is available as part of our commercial subscription."
As to documentation on nginx.org that doesn't apply to the open source edition, see http://nginx.org/en/docs/http/ngx_http_upstream_module.html#... -- there are quite a few more, that's just the last one I tried to use.
http://nginx.org/en/docs/http/ngx_http_v2_module.html
Hmm, so Ubuntu 14.04 LTS won't support it (ships OpenSSL 1.0.1f), need to upgrade to 16.04.
0: http://blog.chromium.org/2016/02/transitioning-from-spdy-to-...
You should take look at OpenSuSE's zypper.
- 3 sat solver for dependencies (not just greedy algorithm; If there are conflicts it can propose you possible solutions that include uninstalling upgrading/downgrading packages)
- packages stick by default to the repositories they were installed from
- patches (i.e. sets of updated packages to address specific issue) it tells you what was fixed. You can for example only install patches that fix specific security issue, by using --cve opetion.
- zypper ps tells you which processes need to be restarted after upgrade to make changes effective
- OBS (Open Build System), basically it's like a github for packages. You upload spec files and it generates packages for you. You can fork someone's definitions and make customizations etc. The repo is searchable from http://software.opensuse.org. This actually supports other distributions and packaging systems, but unfortunately most packages there are for SuSE.
Now I am torn three-ways on the question of the next distro/package manager I should try out: nix is a strong attraction because it also does a lot of cool stuff (especially the multiple versions thing, which I think is a better solution than 3-sat solving), and Ubuntu's snap{d,craft,-whatever} because it is a better real-world solution for third-party packaging needs.
There's a lot of difference between "unstable" and "Debian unstable". The latter is actually quite stable (which may be why Ubuntu feels safe enough to build on it). Breaking libc is a major step, and Debian wouldn't take such a step lightly. It rarely happens even with rolling release distros – and in the case of Debian – the true rolling, unstable distro is Debian testing. Before such a things rolls into Debian unstable, we've already received ample notice.
----
> which have had fun bugs in the past like ...
I think those were just bugs. They didn't happen because they were in unstable, and even stable has had nasty bugs.
----
We do have one server running Arch though; we run every service on it that we have in production and some more, and less effort has gone into to it than any of our production servers individually. I think that's primarily because packaging for Arch is just so simple.
IP addresses of upstream servers change, and sometimes DNS doesn't resolve until another service is brought up. Nginx does not work well in such an environment unless you (1) have ugly configuration hacks, (2) add OpenResty/LUA to your configuration, (3) add a watchdog process, or (4) buy their nginx Plus version and keep track of how many instances of nginx you have.
I want simple. If you need a webserver that can use DNS, Nginx is a lot of extra work.
Would something like that work for you?
If the IP address of the microservice nginx depends on changes, in a standard nginx config, nginx will not be updated. A Kubernetes health check could also hide this issue.
1. Fix of the repeated-tries of non-idempotent requests bug.
2. Dynamic modules.
3. HTTP/2!!
4. reuseport in listen.
5. SSLv3 disabled by default.
6. UDP Load Balancing.
Isn't that just a feature creep?
Doesn't look like anything that would be useful in a web server and load balancing of UDP is different than TCP. Layer 3 load balancing (e.g. LVS) would probably be more suitable.
Nginx's sees a massive share of its usage as a web server, sure, but – from the very beginning – it was always intended to be a good reverse-proxy.
Apart from http, nginx also supports mail (imap, pop3, smtp), stream sockets (tcp and unix), and few third-party ones too (like rtmp). And now, UDP as well.
One of most needed features expected of a good reverse-proxy is load-balancing. Nginx is already quite good at it, but lacked UDP load balancing (like HAproxy – another reverse-proxy – does). That is no longer the case, and I'm sure the people that have asked HAproxy to support UDP will be pleased that nginx does it now.
www.slideshare.net/bryan_call/choosing-a-proxy-server-apachecon-2014
www.slideshare.net/AllThingsOpen/battle-of-the-stacks
It feels a bit biased.
2. This test is unfair, it relies on default settings, where nginx has defaults to retry immediately and never give up. HAProxy by default has this option (option redispatch) disabled because it offers larger range of load balancing algorithms and in some cases this setting might not make sense. The point is that you can configure it to behave the same way.
3. In terms of in-flight health checks HAProxy has actual ones (in addition to the above redispatch mechanism) with observe option[1] and on-error[2] it can be programmed to for example simulate healthcheck down when application generates too many 5xx errors.
[1] http://cbonte.github.io/haproxy-dconv/configuration-1.6.html...
[2] http://cbonte.github.io/haproxy-dconv/configuration-1.6.html...
Edit: If you have to downvote, go ahead, but at least state why you don't agree, so I can know why I'm wrong and can revise my opinion.