Unit 1.16.0 release

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


Hi,

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": {
                  "192.168.0.100:8080": { },
                  "192.168.0.101:8080": {
                      "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": "http://127.0.0.1:9000"
          }
      }
  }


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
       enabled.

    *) 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