[ANN] OpenResty 18.104.22.168 released
Yichun Zhang (agentzh)
agentzh at gmail.com
Mon Nov 13 19:39:17 UTC 2017
I am excited to announce the new formal release, 22.214.171.124, of the
OpenResty web platform based on NGINX and LuaJIT:
Both the (portable) source code distribution, the Win32 binary
distribution, and the pre-built binary Linux packages for all those
common Linux distributions are provided on this Download page.
Special thanks go to all our developers and contributors! And thanks
OpenResty Inc. for sponsoring a lot of the OpenResty core development
We have the following highlights in this release:
1. Based on the latest mainline nginx core 1.13.6.
2. Included new component ngx_stream_lua_module which can do nginx TCP
servers with Lua:
3. New ttl(), expire(), free_space(), and capacity() Lua methods for
4. New resty.limit.count module in lua-resty-limit-traffic for doing
GitHub API style limiting:
5. Added JIT controlling command-line options to the resty command-line utility:
6. Wildcard support in the more_clear_input_headers directive:
7. HTTP/2 support in the opm client tool (through curl).
The complete change log since the last (formal) release, 126.96.36.199:
* upgraded the Nginx core to 1.13.6.
* see the changes here: http://nginx.org/en/CHANGES
* bundled the new component, ngx_stream_lua_module 0.0.4, which is
also enabled by default. One can disable this 3rd-party Nginx C
module by passing "--without-stream_lua_module" to the
"./configure" script. We provide compatible Lua API with ngx_lua
wherever it makes sense. Currently we support content_by_lua*,
preread_by_lua* (similar to ngx_lua's access_by_lua* ),
log_by_lua*, and balancer_by_lua* in the stream subsystem.
thanks Mashape Inc. for sponsoring the OpenResty Inc. team to do
the development work on rewriting ngx_stream_lua for recent
nginx core version.
* change: applied a patch to the nginx core to make sure the
"server" header in HTTP/2 response shows "openresty" when the
"server_tokens" diretive is turned off.
* feature: added nginx core patches needed
* win32: upgraded PCRE to 8.41.
* upgraded ngx_lua to 0.10.11.
* feature: shdict: added pure C API for getting free page size
and total capacity for lua-resty-core. thanks Hiroaki
Nakamura for the patch.
* feature: added pure C functions for shdict:ttl() and
shdict:expire() API functions. thanks Thibault Charbonnier
for the patch.
* bugfix: *_by_lua_block directives might break nginx config
dump ("-T" switch). thanks Oleg A. Mamontov for the patch.
* bugfix: segmentation faults might happen when pipelined http
requests are used in the downsteram connection. thanks Gao
Yan for the report.
* bugfix: the ssl connections might be drained and reused
prematurely when ssl_certificate_by_lua* or
ssl_session_fetch_by_lua* were used. this might lead to
segmentation faults under load. thanks guanglinlv for the
report and the original patch.
* bugfix: tcpsock:connect(): when the nginx resolver's
"send()" immediately fails without yielding, we didn't clean
up the coroutine ctx state properly. This might lead to
segmentation faults. thanks xiaocang for the report and root
for the patch.
* bugfix: added fallthrough comment to silence GCC 7's
"-Wimplicit-fallthrough". thanks Andriy Kornatskyy for the
report and spacewander for the patch.
* bugfix: tcpsock:settimeout, tcpsock:settimeouts: throws an
error when the timeout argument values overflow. Here we
only support timeout values no greater than the max value of
a 32 bits integer. thanks spacewander for the patch.
* doc: added "413 Request Entity Too Large" to the possible
short circuit response list. thanks Datong Sun for the
* upgraded lua-resty-core to 0.1.13.
* feature: ngx.balancer now supports the ngx_stream_lua; also
disabled all the other FFI APIs for the stream subsystem for
* feature: resty.core.shdict: added new methods
shdict:free_space() and shdict:capacity(). thanks Hiroaki
Nakamura for the patch.
* feature: implemented the ngx.re.gmatch function with FFI.
thanks spacewander for the patch.
* bugfix: ngx.re: fix an edge-case where re.split() might not
destroy compiled regexes. thanks Thibault Charbonnier for
* feature: implemented the shdict:ttl() and shdict:expire()
API functions using FFI.
* upgraded lua-resty-dns to 0.20.
* feature: allows "RRTYPE" values larger than 255. thanks
Peter Wu for the patch.
* upgraded lua-resty-limit-traffic to 0.05.
* feature: added new module resty.limit.count for GitHub API
style request count limiting. thanks Ke Zhu for the original
patch and Ming Wen for the followup tweaks.
* bugfix: resty.limit.traffic: we might not uncommit previous
limiters if a limiter got rejected while committing a state.
thanks Thibault Charbonnier for the patch.
* bugfix: resty.limit.conn: we incorrectly specified the
exceeded connection count as the initial value for the
shdict key decrement which may lead to dead locks when the
key has been evicted in very busy systems. thanks bug had
appeared in v0.04.
* upgraded resty-cli to 0.20.
* feature: resty: impelented the "-j off" option to turn off
the JIT compiler.
* feature: resty: implemented the "-j v" and "-j dump" options
similar to luajit's.
* feature: resty: added new command-line option "-l LIB" to
mimic lua and luajit -l parameter. thanks Michal Cichra for
* bugfix: resty: handle "SIGPIPE" ourselves by simply killing
the process. thanks Ingy dot Net for the report.
* bugfix: resty: hot looping Lua scripts failed to respond to
the "INT" signal.
* upgraded opm to 0.0.4.
* bugfix: opm: when curl uses HTTP/2 by default opm would
complain about "bad response status line received". thanks
Donal Byrne and Andrew Redden for the report.
* debug: opm: added more details in the "bad response status
line received from server" error.
* upgraded ngx_headers_more to 0.33.
* feature: add wildcard match support for
* doc: fixed more_clear_input_headers usage examples. thanks
Daniel Paniagua for the patch.
* upgraded ngx_encrypted_session to 0.07.
* bugfix: fixed one potential memory leak in an error
condition. thanks dyu for the patch.
* upgraded ngx_rds_json to 0.15.
* bugfix: fixed warnings with C compilers without variadic
* doc: added context info for all the config directives.
* upgraded ngx_rds_csv to 0.08.
* tests: varous changes in the test suite.
* upgraded LuaJIT to v2.1-20171103:
* optimize: use more appressive JIT compiler parameters as the
default to help large OpenResty Lua apps. We now use the
following jit.opt defaults: "maxtrace=8000 maxrecord=16000
minstitch=3 maxmcode=40960 -- in KB".
* imported Mike Pall's latest changes:
* "LJ_GC64": Make "ASMREF_L" references 64 bit.
* "LJ_GC64": Fix ir_khash for non-string GCobj.
* DynASM/x86: Fix potential "REL_A" overflow. Thanks to
* MIPS64: Hide internal function.
* x64/"LJ_GC64": Fix type-check-only variant of SLOAD.
Thanks to Peter Cawley.
* PPC: Add soft-float support to JIT compiler backend.
Contributed by Djordje Kovacevic and Stefan Pejic from
RT-RK.com. Sponsored by Cisco Systems, Inc.
* x64/"LJ_GC64": Fix fallback case of "asm_fuseloadk64()".
Contributed by Peter Cawley.
The HTML version of the change log with lots of helpful hyper-links
can be browsed here:
OpenResty is a full-fledged web platform
by bundling the standard Nginx core, Lua/LuaJIT, lots of
3rd-party Nginx modules and Lua libraries, as well as most of their external
dependencies. See OpenResty's homepage for details:
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:
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.
President & CEO of OpenResty Inc.
More information about the nginx