我們剛剛釋出了一個新的候選版本,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 討論。

公眾號

歡迎關注我們的微信公眾號

我們的微信公眾號