OpenResty®

OpenResty XRay

Advanced observability built for OpenResty and more

×

limited time offer

Request TRIAL today and receive a diagnostic REPORT
Learn more

ChangeLog for 1.31.1.x

lijunlong , 13 May 2026 (created 13 May 2026)

Version 1.31.1.1 - 13 May 2026

  • Nginx core

    • upgraded from nginx 1.29.2 to 1.31.1.
  • OpenSSL

    • upgraded from version 3.5.5 to 3.5.6.
  • upgraded lua-nginx-module to v0.10.31

    • feature: add ffi ngx_http_lua_ffi_socket_tcp_get_ssl_pointer() and ffi ngx_http_lua_ffi_socket_tcp_get_ssl_ctx(). Thanks lijunlong for the patch.
    • feature: add new API: tcpsock:getsslsession. Thanks lijunlong for the patch.
    • feature: add ngx_http_lua_ffi_get_upstream_ssl_pointer. Thanks lijunlong for the patch.
    • feature: add precontent_by_lua directives Thanks Hanada for the patch.
    • feature: add server random and master key fetch api. Thanks xiangwei for the patch.
    • feature: add socket options keepintvl and keepcnt for tcp. Thanks lijunlong for the patch.
    • feature: proxy_ssl_verify_by_lua* directives Thanks willmafh for the patch.
    • feature: support custom trusted CA store for cosocket TLS handshake. (#2495) Thanks Walker Zhao for the patch.
    • bugfix: add dump in nginx -T. Thanks Y.Horie for the patch.
    • bugfix: clear wait timer in ngx_http_lua_pipe_proc_wait_cleanup to prevent SIGSEGV on QUIC connection close Thanks Jun Ouyang for the patch.
    • bugfix: fix the compatibility issue for freenginx. Thanks Y.Horie for the patch.
    • bugfix: fixed typo in config. Thanks xuruidong for the patch.
    • bugfix: prevent NULL dereference in SSL cache by ensuring old_cycle is set Thanks Jun Ouyang for the patch.
    • bugfix: prevent SIGSEGV in event timer rbtree during worker shutdown. Thanks Gabriel Clima for the patch.
    • bugfix: prevent use-after-free crash in ngx_http_lua_pipe by ensuring connections are closed before pool destruction in quic connection close path. Thanks Jun Ouyang for the patch.
    • bugfix: prevent uthread crash by checking coroutine reference before deletion. Thanks Jun Ouyang for the patch.
    • change: allow table for multiple values in ngx.header['WWW-Authenticate']. Thanks BotoX for the patch.
    • optimize: add compatibility for freenginx. Thanks Sergey A. Osokin for the patch.
    • optimize: add upstream server information to the error log of cosocket. Thanks lijunlong for the patch.
    • test: fix flaky test at boringssl environment. Thanks Jun Ouyang for the patch.
    • test: add dnsmasq in ci to avoid flaky test. Thanks Y.Horie for the patch.
    • doc: fix unencoded characters with ngx.escape_uri. Thanks Y.Horie for the patch.
    • doc: fixed typo. Thanks leslie for the patch.
    • doc: typo fixes and delete incorrect statements. Thanks willmafh for the patch.
    • doc: update copyright. Thanks lijunlong for the patch.
    • doc: update context for ngx.req.http_version and ngx.req.raw_header to include log_by_lua. Thanks kurt for the patch.
  • upgraded stream-lua-nginx-module to v0.0.19

    • feature: add ffi api ngx_stream_lua_ffi_socket_tcp_getfd. Thanks lijunlong for the patch.
    • feature: add ffi functions ngx_stream_lua_ffi_socket_tcp_get_ssl_pointer() and ngx_stream_lua_ffi_socket_tcp_get_ssl_ctx(). Thanks lijunlong for the patch.
    • feature: add new API: tcpsock:get_ssl_session. Thanks lijunlong for the patch.
    • feature: add ngx_stream_lua_ffi_get_upstream_ssl_pointer. Thanks lijunlong for the patch.
    • feature: add reuseport for binding local port for udp cosocket. Thanks lijunlong for the patch.
    • feature: add socket options keepintvl and keepcnt for tcp. Thanks lijunlong for the patch.
    • feature: implement serversslhandshake method on downstream sockets (#392) Thanks Rob Mueller for the patch.
    • feature: proxy_ssl_certificate_by_lua directives Thanks willmafh for the patch.
    • feature: support custom trusted CA store for cosocket TLS handshake. (#401) Thanks Walker Zhao for the patch.
    • optimize: add compatibility for freenginx. Thanks Sergey A. Osokin for the patch.
    • optimize: add upstream server information to the error log of cosocket. Thanks lijunlong for the patch.
    • bugfix: didn't close cosocket when nginx shutdown timer has been triggered. Thanks lijunlong for the patch.
    • bugfix: prevent uthread crash by checking coroutine reference before deletion. Thanks Jun Ouyang for the patch.
    • bugfix: suppress clang warning. Thanks lijunlong for the patch.
  • upgraded lua-resty-core to v0.1.34rc2

    • feature: add fetch server random and master key lua api Thanks mengxiangwei for the patch.
    • feature: add new API: tcpsock:getsslsession. Thanks lijunlong for the patch.
    • feature: add precontent_by_lua directives. Thanks Hanada for the patch.
    • feature: add socket options keepintvl and keepcnt for tcp. Thanks lijunlong for the patch.
    • feature: add sock:getsslpointer() and sock:getsslctx(). Thanks lijunlong for the patch.
    • feature: add ssl.get_upstream_ssl_pointer. Thanks lijunlong for the patch.
    • feature: add tcpsock.getfd() for stream subsystem. Thanks lijunlong for the patch.
    • feature: add tcpsock:settrustedstore() for per-handshake trusted CAs Thanks Walker Zhao for the patch.
    • feature: proxy_ssl_certificate_by_lua directives Thanks willmafh for the patch.
    • feature: support tcpsock:settrustedstore() for stream subsystem. Thanks Walker Zhao for the patch.
    • feature: update versions of ngx-lua and stream-ngx-lua. Thanks lijunlong for the patch.
    • optimize: more detail error message when loading wrong lua-nginx-module. Thanks lijunlong for the patch.
    • bugfix: failed to load socket.lua when building without ssl. Thanks lijunlong for the patch.
    • bugfix: fixed typo. Thanks lijunlong for the patch.
    • doc: update copyright. Thanks lijunlong for the patch.
    • style: typo fixes. Thanks Chrono for the patch.
  • upgraded luajit2 to v2.1-20260415

    • Add ffi.abi("dualnum"). Thanks Mike Pall for the patch.
    • Allow mcode allocations outside of the jump range to the support code. Thanks Mike Pall for the patch.
    • ARM64: Enable unaligned accesses if indicated by the toolchain. Thanks Mike Pall for the patch.
    • ARM64: Fix disassembly of >2GB branch targets. Thanks Mike Pall for the patch.
    • ARM64: Fix disassembly of certain sub-word-size loads/stores. Thanks Mike Pall for the patch.
    • ARM64: More fixes for ARM BTI. Thanks Mike Pall for the patch.
    • Avoid recording interference due to invocation of VM hooks. Thanks Mike Pall for the patch.
    • Avoid use of subnormals for internal registry keys. Thanks Mike Pall for the patch.
    • Back out MSVC LJ_CONSTF declaration. Thanks Mike Pall for the patch.
    • bcsave.lua: add ppc64 and ppc64le mappings Thanks Piotr Kubaj for the patch.
    • bugfix: failed to build with LUA_USE_TRACE_LOGS defined. Thanks lijunlong for the patch.
    • DUALNUM: Add missing type conversion for FORI slots. Thanks Mike Pall for the patch.
    • DUALNUM: Fix narrowing of unary minus. Thanks Mike Pall for the patch.
    • DUALNUM: Fix recording of loops broken by previous change. Thanks Mike Pall for the patch.
    • DUALNUM: Improve/fix edge cases of unary minus. Thanks Mike Pall for the patch.
    • ELF/Mach-O: Force default visibility for public API functions. Thanks Mike Pall for the patch.
    • FFI: Avoid dangling cts->L. Thanks Mike Pall for the patch.
    • FFI: Fix constructor index resolution in JIT compiler. Thanks Mike Pall for the patch.
    • FFI: Fix pointer difference operation on 64 bit platforms. Thanks Mike Pall for the patch.
    • FFI: Shrink container of packed bitfield. Thanks Mike Pall for the patch.
    • Fix compiler warning. Thanks Mike Pall for the patch.
    • Fix edge cases when generating IR for string.byte/sub/find. Thanks Mike Pall for the patch.
    • Fix edge cases when recording string.byte/sub. Thanks Mike Pall for the patch.
    • Fix G->jit_base relocation on stack resize. Thanks Mike Pall for the patch.
    • Fix minilua undefined behavior in bit.tohex. Thanks Mike Pall for the patch.
    • Fix MSVC LJ_CONSTF declaration. Thanks Mike Pall for the patch.
    • Fix string.format for limited precision FP conversions. Thanks Mike Pall for the patch.
    • Fix VM event error handling for finalizers. Thanks Mike Pall for the patch.
    • Ignore PDB files for git. Thanks Mike Pall for the patch.
    • Implement double-to-integer conversions for s390x (#256) Thanks Ilya Leoshkevich for the patch.
    • macOS: Change Mach-O object file layout required by XCode 15.0. Thanks Mike Pall for the patch.
    • MIPS64: Avoid unaligned load in lj_vm_exit_interp. Thanks Mike Pall for the patch.
    • PPC: Fix soft-float lj_num2u64(). Thanks Mike Pall for the patch.
    • Prevent false positive sanitizer warning in unpack(). Thanks Mike Pall for the patch.
    • Prevent recording of loops with -0 step or NaN values. Thanks Mike Pall for the patch.
    • Prevent snapshot purge while recording a function header. Thanks Mike Pall for the patch.
    • Remove compiler flag for FP conversions. Now unnecessary. Thanks Mike Pall for the patch.
    • Remove pointless GCC/MSVC const function attributes. Thanks Mike Pall for the patch.
    • Run VM events and finalizers in separate state. Thanks Mike Pall for the patch.
    • s390x: simplify ceil/floor code (#246) Thanks J. Neuschäfer for the patch.
    • Unify Lua number to FFI integer conversions. Thanks Mike Pall for the patch.
    • x64/!LJ_GC64: The allocation limit is required for a no-JIT build, too. Thanks Mike Pall for the patch.
    • x86/x64: Backport fix for math.min()/math.max() argument check. Thanks Mike Pall for the patch.
  • upgraded ngx_postgres to v1.1

    • bugfix: recover postgres peer data when wrapped by another module. Thanks lijunlong for the patch.
  • lua-rds-parser:

    • added a .gitattributes file to correct GitHub's language tag. Thanks Yichun Zhang (agentzh) for the patch.
    • feature: added travis-ci support. Thanks Ilya Shipitsin for the patch.
    • made the README more pretty. Thanks Yichun Zhang (agentzh) for the patch.
  • upgraded xss-nginx-module to v0.07

    • bugfix: fixed #22 module already loaded. Thanks lijunlong for the patch.
    • feature: add dynamic build support. Thanks Su Yang for the patch.
  • upgraded lua-resty-mysql to v0.30

    • feature: add support for ed25519. Thanks lijunlong for the patch.
  • form-input-nginx-module:

    • doc: nginx compatibility as far as 1.9.15. Thanks Yichun Zhang (agentzh) for the patch.
  • lua-resty-lock:

    • doc: correct package status in README.markdown. Thanks jumper047 for the patch.
  • upgraded echo-nginx-module to v0.64

    • doc: update the release date and version in README.md. Thanks lijunlong for the patch.
    • optimize: add compatibility for freenginx Thanks lijunlong for the patch.
  • redis2-nginx-module:

    • doc: updated the nginx compatibility list. Thanks Yichun Zhang (agentzh) for the patch.
    • doc: update README.markdown. Thanks Steve for the patch.
    • travis: clone the lua-resty-core and lua-resty-lrucache repositories. Thanks Thibault Charbonnier for the patch.
  • lua-resty-websocket:

    • doc: fix typo in comments. Thanks harry-xm for the patch.
  • upgraded lua-upstream-nginx-module to v0.08

    • bugfix: acquire rlock and wlock when needed Thanks Aleksandr Tuliakov for the patch.
    • dev: make sure we pass tests with nginx 1.13.6. Thanks Yichun Zhang (agentzh) for the patch.
    • doc: get_upstreams() actually get implicit upstream created by proxy_pass, but doc said that was excluded. Thanks silence2014 for the patch.
    • doc: small typo fixes in the docs for get_servers. Thanks chronolaw for the patch.
    • doc: updated get_servers return value. Thanks Peter Zhu for the patch.
    • travis: added nginx 1.13.6 to the test matrix. Thanks Yichun Zhang (agentzh) for the patch.
    • travis: fixed build. Thanks Yichun Zhang (agentzh) for the patch.
  • upgraded lua-resty-upstream-healthcheck to v0.09

    • optimize: update peers in case of using resolve directive Thanks Aleksandr Tuliakov for the patch.
  • upgraded lua-resty-string to v0.17

    • feature: add AES-256-CTR binding and reuse buffers. Thanks ^_^ for the patch.
  • upgraded lua-cjson to v2.1.0.17

    • bugfix: fix truncation of decoded numbers outside lua_Integer's range (#116) Thanks James McCoy for the patch.
    • feature: add option to allow comments in decode. Thanks skewb1k for the patch.
    • feature: add option to indent encoded output. Thanks skewb1k for the patch.
    • bugfix: warning for explicit pointer to int conversion. Thanks Deyan Dobromirov for the patch.
    • optimize: rename cjson.decode_allow_comments to cjson.decode_allow_comment. Thanks lijunlong for the patch.
  • lua-resty-shell:

    • doc: add a description of the default value of the max_size parameter. Thanks lijunlong for the patch.
    • README.md: add info about default timeout (#21) Thanks Jeffrey 'jf' Lim for the patch.
  • headers-more-nginx-module:

    • doc: fix syntax by adding a semicolon in README. Thanks Baba Boota for the patch.
    • doc: update copyright. Thanks lijunlong for the patch.
    • doc: update latest compatible nginx version. Thanks lijunlong for the patch.
  • set-misc-nginx-module:

    • doc: several typo fixes in README.markdown. Thanks willmafh for the patch.
  • upgraded drizzle-nginx-module to v0.1.13

    • bugfix: stash peer data in module ctx to survive upstream wrappers. (#52) Thanks lijunlong for the patch.