我们刚刚发布了一个新的候选版本,OpenResty 1.21.4.2 RC1,供社区测试使用。

源码包

https://openresty.org/download/openresty-1.21.4.2rc1.tar.gz

源码压缩包的 PGP:

https://openresty.org/download/openresty-1.21.4.2rc1.tar.gz.asc

Windows 二进制包

Win64 版本:

https://openresty.org/download/openresty-1.21.4.2rc1-win64.zip

Win64 压缩包的 PGP:

https://openresty.org/download/openresty-1.21.4.2rc1-win64.zip.asc

Win32 版本:

https://openresty.org/download/openresty-1.21.4.2rc1-win32.zip

Win32 压缩包的 PGP:

https://openresty.org/download/openresty-1.21.4.2rc1-win32.zip.asc

鸣谢

特别感谢我们所有的开发者和贡献者! 也感谢李俊龙和王家豪在发布这个版本时的帮助。

重点变更

本候选版本的重点变更有:

  • LuaJIT
    • 避免在 C 语言中对可能包含 INT*_MIN 的有符号整数进行取反,因为最近的 C 语言编译器 “利用 “了未定义的行为,这完全改变了类似 (k == -k) 这样的表达式的含义。
    • 更正了记录 BC_VARG 时的堆栈检查。
    • 修正了对源于 BC_ITERNBC_JLOOP 的跟踪连接。
    • 修正了 math.floor()math.ceil()
    • 从 Mike Pall 维护的上游 https://github.com/luajit/luajit 仓库同步了大量修改。
  • resty.core.time 中实现了 monotonic_msec()monotonic_time()
  • Apple Silicon FFI ABI 限制的解决方法。
  • 用 FFI 重新实现了 tcpsock:sslhandshake、coroutine wrapper 和 ngx.req.is_internal
  • SSL/TLS 支持口令保护的私钥。
  • 修正了通过 ngx.req.raw_header 获取格式错误请求 headers 时的 segmentation fault。
  • 修正了潜在的空指针解引用。
  • lua-cjson 模块
    • empty_array 在 Apple 上不能工作,因为 cjson 没有比较 light userdata 地址和 masked 地址。由于我们在创建 lightuserdata 时使用了 json_lightudata_mask,所以在比较 touserdata 的返回时也应该使用同样的掩码。
  • headers-more-nginx-module 模块
    • 修正了访问未初始化的指针时的崩溃问题。
  • lua-resty-websocket 模块
    • 增加了对 mtls 客户端证书的支持。
  • lua-resty-memcached 模块
    • 实现了 init_pipeline(), commit_pipeline(), 和 cancel_pipeline()

完整变更日志

自上一个(正式)版本 1.21.4.1 以来的完整变更记录请见:

http://openresty.org/en/ann-1021004002rc1.html

反馈

欢迎给本版本提供反馈。欢迎到 GitHub issues 创建新 issue 或者给我们的邮件列表之一发送邮件, 或者到我们的 bbs 讨论。

公众号

欢迎关注我们的微信公众号

我们的微信公众号