OpenResty 1.21.4.2 預覽版 RC1 釋出
我們剛剛釋出了一個新的候選版本,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_ITERN
的BC_JLOOP
的跟蹤連線。 - 修正了
math.floor()
和math.ceil()
。 - 從 Mike Pall 維護的上游 https://github.com/luajit/luajit 倉庫同步了大量修改。
- 避免在 C 語言中對可能包含 INT*_MIN 的有符號整數進行取反,因為最近的 C 語言編譯器 “利用 “了未定義的行為,這完全改變了類似
- 在
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 討論。
公眾號
歡迎關注我們的微信公眾號