Nginx 1.2.0 (stable) released
nginx.org
nginx.org
The main feature of the 1.1.x branch I've used is http/1.1 reverse proxying. Previously in 1.0, nginx spoke http/1.0 with reverse proxies. This upgrade allows nginx to make persistent connections with backend servers instead of creating new connections whenever it forward requests.
Surprisingly I can't seem to find that info.
- the $connection_requests variable.
- $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd and $tcpinfo_rcv_space variables.
- the "worker_cpu_affinity" directive now works on FreeBSD.
- the "xslt_param" and "xslt_string_param" directives. Thanks to Samuel Behan.
- the "from" parameter of the "disable_symlinks" directive.
- the "return" and "error_page" directives can now be used to return 307 redirections.
- the "disable_symlinks" directive.
- the "proxy_cookie_domain" and "proxy_cookie_path" directives.
- multiple "limit_req" limits may be used simultaneously.
- the "TLSv1.1" and "TLSv1.2" parameters of the "ssl_protocols" directive.
- the "proxy/fastcgi/scgi/uwsgi_cache_lock", "proxy/fastcgi/scgi/uwsgi_cache_lock_timeout" directives.
- the "pcre_jit" directive.
- the "if" SSI command supports captures in regular expressions.
- the "so_keepalive" parameter of the "listen" directive. Thanks to Vsevolod Stakhov.
- the "if_not_empty" parameter of the "fastcgi/scgi/uwsgi_param" directives.
- the $https variable.
- the "proxy_redirect" directive supports variables in the first parameter.
- the "proxy_redirect" directive supports regular expressions.
- the "valid" parameter of the "resolver" directive. By default TTL returned by a DNS server is used.
- support for multiple "limit_conn" limits on the same level.
- the "image_filter_sharpen" directive.
- support of several DNS servers in the "resolver" directive. Thanks to Kirill A. Korinskiy.
- "proxy/fastcgi/scgi/uwsgi_ignore_headers" directives support the following additional values: X-Accel-Limit-Rate,
- decrease of memory consumption if SSL is used.
- the "uwsgi_buffering" and "scgi_buffering" directives. Thanks to Peter Smit.
- the ngx_http_upstream_keepalive module.
- the "proxy_http_version" directive.
- the "fastcgi_keep_conn" directive.
- the "worker_aio_requests" directive.
- the module ngx_http_mp4_module.
- the "max_ranges" directive.
- now shared zones and caches use POSIX semaphores on Solaris. Thanks to Den Ivanov.
- accept filters are now supported on NetBSD.
- cache loader run time decrease.
- "loader_files", "loader_sleep", and "loader_threshold" options of the "proxy/fastcgi/scgi/uwsgi_cache_path" directives.
- loading time decrease of configuration with large number of HTTPS sites.
- now nginx supports ECDHE key exchange ciphers. Thanks to Adrian Kotelba.
- the "lingering_close" directive. Thanks to Maxim Dounin.Also, I think there are bugfixes (and maybe security patches?) in 1.2.x that weren't in 1.0.x.
I'm just surprised that there isn't a coalesced list of changes for going from stable->stable release.
If I was in wide production, I'd want more guidance on what changed, and when I should be upgrading.
Bug fixes and security patches are applied to both stable and dev branches. Some of the recent buffer overflow patches only affect features added in 1.1.
Hopefully future changelogs can be more comprehensive and usable now that nginx has venture funding.
I recommend using Server-Sent Events instead. You get nearly same API for realtime server->client push, and they're HTTP-compatible:
http://html5doctor.com/server-sent-events/ http://speakerdeck.com/u/pornel/p/server-sent-events
edit: that's for version 1.0.X though, not sure about 1.1
Differences between v1.1.19 and v1.2:
Changes with nginx 1.2.0 23 Apr 2012
*) Bugfix: a segmentation fault might occur in a worker process if the
"try_files" directive was used; the bug had appeared in 1.1.19.
*) Bugfix: response might be truncated if there were more than IOV_MAX
buffers used.
*) Bugfix: in the "crop" parameter of the "image_filter" directive.
Thanks to Maxim Bublis.