OpenResty® Scalable Web Platform by Extending NGINX with Lua

New! New blog post Share Data Across Requests Served by OpenResty is published.
New! New blog post Install OpenResty on CentOS 8 via dnf is published.
New! Test::Nginx 0.29 is now released!
New! OpenResty 1.19.3.1 is now released!

OpenResty 1.17.8.1 Released

Yichun Zhang (agentzh) , 13 Jul 2020 (created 01 Jul 2020)

We are happy to announce the new formal release, 1.17.8.1, of the OpenResty web platform based on NGINX and LuaJIT.

Download this version here.

The (portable) source code distribution, the Win32/Win64 binary distributions, and the pre-built binary Linux packages for Ubuntu, Debian, Fedora, CentOS, RHEL, Alpine, Amazon Linux are provided on this Download page.

We added new binary package repositories for Ubuntu 14.04, Alpine 3.12, OpenSUSE 15.2, and Fedora 28.

This is the first OpenResty release based on the nginx 1.17.8 core.

Acknowledgments

Special thanks go to all our developers, sponsors, and contributors! Also thanks Thibault Charbonnier, Junlong Li, and Lujia Zhai for their help in preparing this release.

Version highlights

The highlights of this release candidate are:

  • Based on the very recent mainline NGINX core 1.17.8.
  • Support for OpenSSL 1.1.1 by upgrading the OpenSSL patches.
  • Dropped support for PUC-Rio Lua; from now on, only LuaJIT 2.x is supported.
  • Dropped the dtrace and gcc-maybe-uninitialized-warning NGINX core patches, and applied the new init_cycle_pool_release patch. Additionally, all versions of the OpenSSL patches are now bundled in the final release tarball.
  • Reduced the final release tarball size from 4.7MB down to 3.5MB.
  • ngx_lua
    • Mandatorily load lua-resty-core and switched to the FFI-based API when available. Many old CFunction implementations have been removed, and lua_load_resty_core has been deprecated.
    • Made the coroutine.wrap() API propagate errors to its parent coroutine, aligning with standard Lua behavior. This change may be breaking for some applications relying on the previous - but invalid - behavior of ngx_lua.
    • Fixed several compilation errors for static PCRE builds and LuaJIT FFI checks.
  • ngx_stream_lua
    • Ported many features from the ngx_lua module, including:
      • Mandatorily load lua-resty-core and switched to the FFI-based API when available. Many old CFunction implementations have been removed, and lua_load_resty_core has been deprecated.
      • Made the coroutine.wrap() API propagate errors to its parent coroutine, aligning with standard Lua behavior. This change may be breaking for some applications relying on the - invalid - previous behavior of ngx_stream_lua.
      • Added the pool_size and backlog options to the tcpsock:connect() API.
      • Enabled many FFI-based APIs for the stream subsystem including ngx.worker.*, ngx.var, ngx.ctx, and many more...
      • Fixed several compilation errors for static PCRE builds and LuaJIT FFI checks.
      • Ported more features and bugfixes from previous releases of the ngx_lua module...
  • lua-resty-core
    • Implemented the new ngx_req.add_header() API, similar to ngx_resp.add_header().
    • New features for the ngx.pipe API with support for environment variables, timeouts, and more.
    • Updated the ngx_ssl.get_tls1_version_str() API to recognize TLS 1.3 connection.
  • LuaJIT
    • Increased the maximum number of allowed upvalues from 60 to 120.
    • Initial support for x390x architectures.
    • Many fixes imported from Mike Pall's upstream LuaJIT repository.

Full Change logs

Complete change logs since the last (formal) release, 1.15.8.3, can be browsed in the page Change Log for 1.17.8.x.

Testing

We have run extensive testing on our Amazon EC2 test cluster and ensured that all the components (including the Nginx core) play well together. The latest test report can always be found here:

https://qa.openresty.org/

We also always run our OpenResty Edge commercial software based on the latest open source version of OpenResty in our own global CDN network (dubbed "mini CDN") powering our openresty.org and openresty.com websites. See https://openresty.com/ for more details.

Community Support

See the Community Page.

Commercial Support

Commercial technical support and real-time noninvasive online monitoring and profiling solution is provided through the official OpenResty XRay product.

Feedback

Feedback on this release is more than welcome. Feel free to create new GitHub issues or send emails to one of our mailing lists.