Unit 1.16.0 release

Valentin V. Bartenev vbart at nginx.com
Thu Mar 12 19:24:51 UTC 2020


I'm glad to announce a new release of NGINX Unit.

To all Unit package maintainers: please don't miss the new '--tmp'
configure option.  It specifies the directory where the Unit daemon
stores temporary files (i.e. large request bodies) at runtime.

In this release, we continue improving the functionality related to
proxying and static media asset handling.

Now, the new 'upstreams' object enables creating server groups
for weighted round-robin load balancing:

      "listeners": {
          "*:80": {
              "pass": "upstreams/rr-lb"

      "upstreams": {
          "rr-lb": {
              "servers": {
                  "": { },
                  "": {
                      "weight": 2

See the docs for details:

 - https://unit.nginx.org/configuration/#configuration-upstreams

So far, it's rather basic, but many more proxying and load-balancing
features are planned for future releases.

By its design, the new 'fallback' option is somewhat similar to the
'try_files' directive in nginx.  It allows proceeding to another
action if a file isn't available:

      "share": "/data/www/",

      "fallback": {
          "pass": "applications/php"

In the example above, an attempt is made first to serve a request
with a file from the "/data/www/" directory.  If there's no such
file, the request is passed to the "php" application.

Also, you can chain such fallback actions:

      "share": "/data/www/",

      "fallback": {
          "share": "/data/cache/",

          "fallback": {
              "proxy": ""

More info:

 - https://unit.nginx.org/configuration/#configuration-fallback

Finally, configurations you upload can use line (//) and block (/* */)
comments.  Now, Unit doesn't complain; instead, it strips them from the
JSON payload.  This comes in handy if you store your configuration in a
file and edit it manually.

Changes with Unit 1.16.0                                         12 Mar 2020

    *) Feature: basic load-balancing support with round-robin.

    *) Feature: a "fallback" option that performs an alternative action if a
       request can't be served from the "share" directory.

    *) Feature: reduced memory consumption by dumping large request bodies
       to disk.

    *) Feature: stripping UTF-8 BOM and JavaScript-style comments from
       uploaded JSON.

    *) Bugfix: negative address matching in router might work improperly in
       combination with non-negative patterns.

    *) Bugfix: Java Spring applications failed to run; the bug had appeared
       in 1.10.0.

    *) Bugfix: PHP 7.4 was broken if it was built with thread safety

    *) Bugfix: compatibility issues with some Python applications.

To keep the finger on the pulse, see our further plans in the roadmap here:

 - https://github.com/orgs/nginx/projects/1

Also, good news for macOS users!  Now, there's a Homebrew tap for Unit:

 - https://unit.nginx.org/installation/#homebrew

Stay healthy!

  wbr, Valentin V. Bartenev

More information about the nginx mailing list