Hi folks!
I am happy to announce the new formal release, 1.7.7.2, of the OpenResty
bundle:
http://openresty.org/#Download
The highlights of this release are
-
the SSL/TLS support in the websocket client of lua-resty-websocket.
-
an enhanced version of “resty” command-line utility supporting user
command-line arguments and some more handy options.
Special thanks go to all our contributors and users for making this
happen!
Below is the complete change log for this release, as compared to the
last formal release (1.7.7.1):
-
bundled the “resty” command-line utility (version 0.01) from the
resty-cli project: GitHub - openresty/resty-cli: Fancy command-line utilities for OpenResty-
bugfix: the resty utility could not start when the nginx was
built with “./configure --conf-path=PATH” where “PATH” was
not “conf/nginx.conf”. thanks Zhengyi Lai for the report. -
feature: added support for user-supplied arguments which the
user Lua scripts can access via the global Lua table “arg”,
just as in the “lua” and “luajit” command-line utilities.
thanks Guanlan Dai for the patch. -
feature: added new command-line option “–nginx=PATH” to
allow the user to explicitly specify the underlying nginx
executable being invoked by this script. thanks Guanlan Dai
for the patch. -
feature: added support for multiple “-I” options to specify
more than one user library search paths. thanks Guanlan Dai
for the patch. -
feature: print out resty’s own version number when the -V
option is specified. -
feature: resty: added new options “–valgrind” and
“–valgrind-opts=OPTS”.
-
-
upgraded the ngx_set_misc module to 0.28.
-
feature: added the set_base32_alphabet config directive to
allow the user to specify the alphabet used for base32
encoding/decoding. thanks Vladislav Manchev for the patch. -
bugfix: set_quote_sql_str: we incorrectly escaped 0x1a to
“\z” instead of “\Z”. -
change: the old set_misc_base32_padding directive is now
deprecated; use set_base32_padding instead.
-
-
upgraded the ngx_lua module to 0.9.14.
-
bugfix: ngx.re.gsub/ngx.re.sub incorrectly swallowed the
character right after a 0-width match that happens to be the
last match. thanks Guanlan Dai for the patch. -
bugfix: tcpsock:setkeepalive(): we did not check “NULL”
connection pointers properly, which might lead to
segmentation faults. thanks Yang Yue for the report. -
bugfix: ngx.quote_str_str() incorrectly escaped “\026” to
“\z” while “\Z” is expected. thanks laodouya for the
original patch. -
bugfix: ngx.timer.at: fixed a small memory leak in case of
running out of memory (which should be extremely rare
though). -
optimize: minor optimizations in timers.
-
feature: added the Lua global variable “__ngx_cycle” which
is a lightuserdata holding the current “ngx_cycle_t”
pointer, which may simplify some FFI-based Lua extensions. -
doc: added a warning for the “share_all_vars” option for
ngx.location.capture*.
-
-
upgraded the lua-resty-core library to 0.1.0.
-
bugfix: resty.core.regex: data corruptions might happen when
recursively calling ngx.re.gsub via the user replacement
function argument because of incorrect reusing a globally
shared captures Lua table. thanks James Hurst for the
report. -
bugfix: ngx.re.gsub: garbage might get injected into gsub
result when “ngx.*” API functions are called inside the user
callback function for the replacement. thanks James Hurst
for the report. -
feature: resty.core.base: added the “FFI_BUSY” constant for
“NGX_BUSY”.
-
-
upgraded the lua-resty-lrucache library to 0.04.
- bugfix: resty.lrucache.pureffi: set(): it did not update to
the new value at all if the key had an existing value
(either stale or not). thanks Shuxin Yang for the patch.
- bugfix: resty.lrucache.pureffi: set(): it did not update to
-
upgraded the lua-resty-websocket library to 0.05.
-
feature: resty.websocket.client: added support for SSL/TLS
connections (i.e., the “wss://” scheme). thanks Vladislav
Manchev for the patch. -
doc: mentioned the bitop library dependency when using the
standard Lua 5.1 interpreter (this is not needed for LuaJIT
because it is already built in). thanks Laurent Arnoud for
the patch.
-
-
upgraded LuaJIT to v2.1-20150120:
Tags · openresty/luajit2 · GitHub-
imported Mike Pall’s latest changes:
-
bugfix: don’t compile “IR_RETF” after “CALLT” to ff with
side effects. -
bugfix: fix “BC_UCLO”/“BC_JMP” join optimization in Lua
parser. -
bugfix: fix corner case in string to number conversion.
-
bugfix: x86: fix argument checks for “ipairs()”
iterator. -
bugfix: gracefully handle “lua_error()” for a suspended
coroutine. -
x86/x64: Drop internal x87 math functions. Use libm
functions. -
x86/x64: Call external symbols directly from interpreter
code. (except for ELF/x86 PIC, where it’s easier to use
wrappers.) -
ARM: Minor interpreter optimization.
-
x86: Minor interpreter optimization.
-
PPC/e500: Drop support for this architecture.
-
MIPS: Fix excess stack growth in interpreter.
-
PPC: Fix excess stack growth in interpreter.
-
ARM: Fix excess stack growth in interpreter.
-
ARM: Fix write barrier check in “BC_USETS”.
-
ARM64: Add build infrastructure and initial port of
interpreter. -
OpenBSD/x86: Better executable memory allocation for
W^X mode.
-
-
-
bugfix: the “ngx_http_redis” module failed to compile when the
“ngx_gzip” module was disabled. thanks anod221 for the report.
The HTML version of the change log with lots of helpful hyper-links
can be browsed here:
http://openresty.org/#ChangeLog1007007
OpenResty (aka. ngx_openresty) is a full-fledged web application
server 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:
http://openresty.org/
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:
http://qa.openresty.org
And we have always been running the latest OpenResty in CloudFlare’s
global CDN network for years.
Enjoy!
-agentzh