OpenResty released

Hi folks!

I am pleased to announce the new formal release,, of the
OpenResty bundle:

Special thanks go to all our contributors and users for making this

Below is the complete change log for this release, as compared to the
last formal release (

  • upgraded the Nginx core to 1.7.10.

  • bugfix: applied the upstream_filter_finalize patch to the nginx
    core to fix corrupted $upstream_response_time variable values
    when “filter_finalize” and error_page are both used. thanks
    Daniel Bento for the report and Maxim D. for the patch.

  • bugfix: ./configure: added
    “–without-http_upstream_least_conn_module” and
    “–without-http_upstream_keepalive_module” to the usage text
    (for “–help”) to reflect recent changes in the nginx core.
    thanks Seyhun Cavus for the report.

  • bugfix: ./configure: renamed the
    “–without-http_limit_zone_module” option to
    “–without-http_limit_conn_module” to reflect the change in
    recent nginx cores. thanks Seyhun Cavus for the report.

  • upgraded LuaJIT to v2.1-20150223:
    Tags · openresty/luajit2 · GitHub

    • imported Mike Pall’s latest changes:

      • x86/x64: fix code generation for fused test/arith ops.
        thanks to Alexander Nasonov and AFL.

      • fix string to number conversion. thanks to Lesley De

      • fix lexer error for chunks without tokens.

      • LJ_FR2: fix bytecode generation for method lookups.

      • FFI: Prevent DSE across “ffi.string()”.

  • upgraded the ngx_lua module to 0.9.15.

    • bugfix: the value of the Location response header set by
      ngx.redirect() or the ngx.header.HEADER API might get
      overwritten by nginx’s header filter to the fully qualified
      form (with the scheme and host parts).

    • bugfix: lua_shared_dict: use of Lua numbers as the value in
      shared dict might lead to unaligned accesses which could
      lead to crashes on architectures requiring data alignment
      (like ARMv6). thanks Shuxin Yang for the fix and thanks
      Stefan P. and Brandon B for the report.

    • bugfix: using error codes (“ngx.ERROR” or >=300) in
      ngx.exit() in header_filter_by_lua* might lead to Lua stack

    • feature: improved the debugging event logging for timers
      created by

    • optimize: fixed padding holes in our struct memory layouts
      for 64-bit systems to save a little memory.

    • optimize: header_filter_by_lua*: removed a piece of useless
      code. thanks Zi Lin for the report.

    • doc: emphasized the capability of using nginx variables in
      the Lua file path in

  • upgraded the ngx_srcache module to 0.29.

    • bugfix: upon cache hits, we might let the nginx core’s
      header filter module overwrite the “Location” response
      header’s values like “/foo/bar” to the fully-qualified form
      (like “”). thanks AlexClineBB for
      the report.
  • upgraded resty-cli to 0.02.

    • bugfix: we did not explicitly specify the pid file path,
      which may conflict with the default pid path if the user
      compiles nginx with the “–pid-path=PATH” ./configure
      option. thanks fancyrabbit for the report.

The HTML version of the change log with lots of helpful hyper-links
can be browsed here:

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:

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:

And we have always been running the latest OpenResty in CloudFlare’s
global CDN network.

Have fun!

Best regards,