diff --git a/README.md b/README.md index a3d0c18da..cb9d43305 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ Table of Contents * [Name](#name) * [Description](#description) * [Building](#building) +* [OpenResty Release](#openresty-release) * [TODO](#todo) * [Credit](#credit) * [Author](#author) @@ -112,7 +113,22 @@ When you are ready to release a new version of openresty, then you need to manua After that, run the following commands to generate the new version of the site: ```bash +if [ ! -d ../lemplate ]; then + git clone git@github.com:openresty/lemplate ../ +fi + +export PATH=$PWD/../lemplate:$PATH + +nvm install 23.11.0 +nvm use 23.11.0 + +# or use the latest version +# nvm install node --latest-npm +# nvm use node + +cd v2 make clean +which lemplate make ``` diff --git a/v2/cn/ann-1027001003.md.tt2 b/v2/cn/ann-1027001003.md.tt2 new file mode 100644 index 000000000..1ff731ff9 --- /dev/null +++ b/v2/cn/ann-1027001003.md.tt2 @@ -0,0 +1,83 @@ +[% major_ver = "1.27.1"; version = major_ver _ ".3" -%] + + +We are happy to announce the new formal release, [% version %], of the +OpenResty web platform based on NGINX and LuaJIT. + +[Download this version here](download.html). + +The (portable) source code distribution, the Win32/Win64 binary +distributions, and the pre-built binary Linux packages for Ubuntu, +Debian, Fedora, CentOS, RHEL, RockyLinux, AlmaLinux, OpenSUSE, Amazon Linux, Alpine, TecentOS Linux, Alibaba Cloud Linux are provided on this +[Download page](download.html). + +# Version highlights + +* OpenSSL + * upgraded from version 3.4.1 to 3.5.1. +* PCRE + * upgraded from version 10.44 to 10.45. +* [lua-resty-redis](https://github.com/openresty/lua-resty-redis) + * bugfix: connection is closed after the blpop and brpop calls time out. + * optimize: return setmetatable is NYI which can not be jit compiled. (#287) +* [headers-more-nginx-module](https://github.com/openresty/headers-more-nginx-module) + * bugfix: didn't set next to NULL for the output header. +* [ngx_devel_kit](https://github.com/simplresty/ngx_devel_kit) + * src/ndk.h: do not #error if 'NDK' is undefined +* [lua-resty-mysql](https://github.com/openresty/lua-resty-mysql) + * bugfix: mysql driver doesn't handle well server side query timeout (Query execution was interrupted). +* [luajit2](https://github.com/openresty/luajit2) + * ARM64: Fix pass-by-value struct calling conventions. + * ARM: Fix soft-float math.min()/math.max(). + * Add compatibility string coercion for fp:seek() argument. + * Avoid out-of-range PC for stack overflow error from snapshot restore. + * Avoid unpatching bytecode twice after a trace flush. + * Change handling of nil value markers in template tables. + * FFI: Add pre-declared int128_t, uint128_t, __int128 types. + * FFI: Fix dangling CType references. + * Fix JIT slot overflow during up-recursion. + * Fix error generation in load*. + * Fix handling of nil value markers in template tables. + * Fix state restore when recording __concat metamethod. + * Improve CLI signal handling on POSIX. + * Initialize unused value when specializing to cdata metatable. + * Prevent Clang UB 'optimization' which breaks integerness checks. + * bugfix: table.clone can't work after commit 538a82133ad. + * macOS: Add suport for Apple hardened runtime. + * macOS: Fix Apple hardened runtime support and put behind build option. + * macOS: Fix support for Apple hardened runtime. + +# Full Change logs + +Complete change logs since the last (formal) release, [1.27.1.2](ann-1027001002.html), +can be browsed in the page [Change Log for [% major_ver %].x](changelog-1027002.html). + +# Testing + +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: + +https://qa.openresty.org/ + +We also always run our OpenResty Edge commercial software based on the +latest open source version of OpenResty in our own global CDN network +(dubbed "mini CDN") powering our openresty.org and openresty.com +websites. See https://openresty.com/ for more details. + +# Community Support + +See the [Community Page](community.html). + +# Commercial Support + +Commercial technical support and real-time noninvasive online monitoring and profiling +solution is provided through the official [OpenResty XRay](https://openresty.com/en/xray/) +product. + +# Feedback + +Feedback on this release is more than welcome. Feel free to create new +[GitHub issues](https://github.com/openresty/openresty/issues) or send emails to one of our [mailing lists](community.html). diff --git a/v2/cn/changelog-1027001.md b/v2/cn/changelog-1027001.md index acd2cf2eb..2620918ba 100644 --- a/v2/cn/changelog-1027001.md +++ b/v2/cn/changelog-1027001.md @@ -4,6 +4,49 @@ @created 2024-08-14 14:33 GMT ---> +# Version 1.27.1.3 - 16 Jul 2025 + +* upgraded [lua-resty-redis](https://github.com/openresty/lua-resty-redis) to v0.33 + * bugfix: connection is closed after the blpop and brpop calls time out. _Thanks 冉朋 for the patch._ + * docs: fix typo in README.markdown. _Thanks hms5232 for the patch._ + * optimize: return setmetatable is NYI which can not be jit compiled. (#287) _Thanks Zero King for the patch._ +* upgraded [headers-more-nginx-module](https://github.com/openresty/headers-more-nginx-module) to v0.39 + * bugfix: didn't set next to NULL for the output header. _Thanks lijunlong for the patch._ + * Move the LICENSE content to a separate file. _Thanks uhliarik for the patch._ +* upgraded [ngx_devel_kit](https://github.com/simplresty/ngx_devel_kit) to v0.3.4 + * src/ndk.h: Do not #error if 'NDK' is undefined _Thanks Simpl for the patch._ + * src/ndk.h: do not #error if 'NDK' is undefined _Thanks Zurab Kvachadze for the patch._ + * src/ndk.h: Update version _Thanks Simpl for the patch._ +* upgraded [lua-resty-mysql](https://github.com/openresty/lua-resty-mysql) to v0.28 + * bugfix: mysql driver doesn't handle well server side query timeout (Query execution was interrupted). _Thanks Nir Nahum for the patch._ +* upgraded [luajit2](https://github.com/openresty/luajit2) to v2.1-20250529 + * Add compatibility string coercion for fp:seek() argument. _Thanks Mike Pall for the patch._ + * ARM64: Fix pass-by-value struct calling conventions. _Thanks Mike Pall for the patch._ + * ARM: Fix soft-float math.min()/math.max(). _Thanks Mike Pall for the patch._ + * Avoid out-of-range PC for stack overflow error from snapshot restore. _Thanks Mike Pall for the patch._ + * Avoid unpatching bytecode twice after a trace flush. _Thanks Mike Pall for the patch._ + * bugfix: table.clone can't work after commit 538a82133ad. _Thanks lijunlong for the patch._ + * Change handling of nil value markers in template tables. _Thanks Mike Pall for the patch._ + * Change handling of nil value markers in template tables. _Thanks Mike Pall for the patch._ + * FFI: Add pre-declared int128_t, uint128_t, __int128 types. _Thanks Mike Pall for the patch._ + * FFI: Fix dangling CType references. _Thanks Mike Pall for the patch._ + * Fix error generation in load*. _Thanks Mike Pall for the patch._ + * Fix handling of nil value markers in template tables. _Thanks Mike Pall for the patch._ + * Fix JIT slot overflow during up-recursion. _Thanks Mike Pall for the patch._ + * Fix state restore when recording __concat metamethod. _Thanks Mike Pall for the patch._ + * Improve CLI signal handling on POSIX. _Thanks Mike Pall for the patch._ + * Initialize unused value when specializing to cdata metatable. _Thanks Mike Pall for the patch._ + * macOS: Add suport for Apple hardened runtime. _Thanks Mike Pall for the patch._ + * macOS: Fix Apple hardened runtime support and put behind build option. _Thanks Mike Pall for the patch._ + * macOS: Fix support for Apple hardened runtime. _Thanks Mike Pall for the patch._ + * Merge from upstream v2.1. _Thanks lijunlong for the patch._ + * Prevent Clang UB 'optimization' which breaks integerness checks. _Thanks Mike Pall for the patch._ + * Remove Cygwin from docs, since it's not a supported target. _Thanks Mike Pall for the patch._ + * REVERT: Change handling of nil value markers in template tables. _Thanks Mike Pall for the patch._ + * Use dylib extension for iOS installs, too. _Thanks Mike Pall for the patch._ + * Windows: Allow mixed builds with msvcbuild.bat. _Thanks Mike Pall for the patch._ + * Windows: Clarify installation directory layout. _Thanks Mike Pall for the patch._ + # Version 1.27.1.2 - 14 Mar 2025 * upgraded [lua-nginx-module](https://github.com/openresty/lua-nginx-module) to v0.10.28 diff --git a/v2/cn/download.md.tt2 b/v2/cn/download.md.tt2 index 6c05e2201..9ab1a9c38 100644 --- a/v2/cn/download.md.tt2 +++ b/v2/cn/download.md.tt2 @@ -9,18 +9,17 @@ ## Linux OpenResty® 给常见 Linux 发布提供[官方预编译安装包](linux-packages.html)。 -目前我们为 Ubuntu、Debian、RHEL、CentOS、Fedora、OpenSUSE、Alpine、Amazon Linux、 -Rocky Linux、Oracle Linux、CBL Mariner 提供官方的二进制包仓库。 +目前我们为 Ubuntu、Debian、RHEL、CentOS、RockyLinux、AlmaLinux、Fedora、OpenSUSE、Alpine、Amazon Linux、Oracle Linux、CBL Mariner 提供官方的二进制包仓库。 ## Windows 所有版本都是用 Yichun Zhang 的 PGP 公钥 `A0E98066` 签发的。 -[% ver = "1.27.1.2" -%] +[% ver = "1.27.1.3" -%] * 32 位 Windows: [openresty-[% ver %]-win32.zip](https://openresty.org/download/openresty-[% ver %]-win32.zip)   16MB   -[PGP](https://openresty.org/download/openresty-[% ver %]-win32.zip.asc) - 2025年3月14日 +[PGP](https://openresty.org/download/openresty-[% ver %]-win32.zip.asc) - 2025年7月16日 * 64 位 Windows: [openresty-[% ver %]-win64.zip](https://openresty.org/download/openresty-[% ver %]-win64.zip)   16MB   -[PGP](https://openresty.org/download/openresty-[% ver %]-win64.zip.asc) - 2025年3月14日 +[PGP](https://openresty.org/download/openresty-[% ver %]-win64.zip.asc) - 2025年7月16日 参见针对 Windows 版 OpenResty 的[用法文档](https://github.com/openresty/openresty/blob/master/doc/README-windows.md)。 @@ -59,15 +58,19 @@ brew install openresty-debug ## 最新版 -[% ver = "1.27.1.2" -%] +[% ver = "1.27.1.3" -%] * [openresty-[% ver %].tar.gz](https://openresty.org/download/openresty-[% ver %].tar.gz)   5.4MB   [PGP](https://openresty.org/download/openresty-[% ver %].tar.gz.asc)   -[变更列表](changelog-1027001.html) - 2025年3月14日 +[变更列表](changelog-1027001.html) - 2025年7月16日 ## 历史版 有时候我们可能会需要较老的版本: +[% ver = "1.27.1.2" -%] +* [openresty-[% ver %].tar.gz](https://openresty.org/download/openresty-[% ver %].tar.gz)   5.4MB +  [PGP](https://openresty.org/download/openresty-[% ver %].tar.gz.asc)   +[变更列表](changelog-1027001.html) - 2025年3月14日 [% ver = "1.27.1.1" -%] * [openresty-[% ver %].tar.gz](https://openresty.org/download/openresty-[% ver %].tar.gz)   5.4MB   [PGP](https://openresty.org/download/openresty-[% ver %].tar.gz.asc)   diff --git a/v2/en/ann-1027001003.md.tt2 b/v2/en/ann-1027001003.md.tt2 new file mode 100644 index 000000000..1ff731ff9 --- /dev/null +++ b/v2/en/ann-1027001003.md.tt2 @@ -0,0 +1,83 @@ +[% major_ver = "1.27.1"; version = major_ver _ ".3" -%] + + +We are happy to announce the new formal release, [% version %], of the +OpenResty web platform based on NGINX and LuaJIT. + +[Download this version here](download.html). + +The (portable) source code distribution, the Win32/Win64 binary +distributions, and the pre-built binary Linux packages for Ubuntu, +Debian, Fedora, CentOS, RHEL, RockyLinux, AlmaLinux, OpenSUSE, Amazon Linux, Alpine, TecentOS Linux, Alibaba Cloud Linux are provided on this +[Download page](download.html). + +# Version highlights + +* OpenSSL + * upgraded from version 3.4.1 to 3.5.1. +* PCRE + * upgraded from version 10.44 to 10.45. +* [lua-resty-redis](https://github.com/openresty/lua-resty-redis) + * bugfix: connection is closed after the blpop and brpop calls time out. + * optimize: return setmetatable is NYI which can not be jit compiled. (#287) +* [headers-more-nginx-module](https://github.com/openresty/headers-more-nginx-module) + * bugfix: didn't set next to NULL for the output header. +* [ngx_devel_kit](https://github.com/simplresty/ngx_devel_kit) + * src/ndk.h: do not #error if 'NDK' is undefined +* [lua-resty-mysql](https://github.com/openresty/lua-resty-mysql) + * bugfix: mysql driver doesn't handle well server side query timeout (Query execution was interrupted). +* [luajit2](https://github.com/openresty/luajit2) + * ARM64: Fix pass-by-value struct calling conventions. + * ARM: Fix soft-float math.min()/math.max(). + * Add compatibility string coercion for fp:seek() argument. + * Avoid out-of-range PC for stack overflow error from snapshot restore. + * Avoid unpatching bytecode twice after a trace flush. + * Change handling of nil value markers in template tables. + * FFI: Add pre-declared int128_t, uint128_t, __int128 types. + * FFI: Fix dangling CType references. + * Fix JIT slot overflow during up-recursion. + * Fix error generation in load*. + * Fix handling of nil value markers in template tables. + * Fix state restore when recording __concat metamethod. + * Improve CLI signal handling on POSIX. + * Initialize unused value when specializing to cdata metatable. + * Prevent Clang UB 'optimization' which breaks integerness checks. + * bugfix: table.clone can't work after commit 538a82133ad. + * macOS: Add suport for Apple hardened runtime. + * macOS: Fix Apple hardened runtime support and put behind build option. + * macOS: Fix support for Apple hardened runtime. + +# Full Change logs + +Complete change logs since the last (formal) release, [1.27.1.2](ann-1027001002.html), +can be browsed in the page [Change Log for [% major_ver %].x](changelog-1027002.html). + +# Testing + +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: + +https://qa.openresty.org/ + +We also always run our OpenResty Edge commercial software based on the +latest open source version of OpenResty in our own global CDN network +(dubbed "mini CDN") powering our openresty.org and openresty.com +websites. See https://openresty.com/ for more details. + +# Community Support + +See the [Community Page](community.html). + +# Commercial Support + +Commercial technical support and real-time noninvasive online monitoring and profiling +solution is provided through the official [OpenResty XRay](https://openresty.com/en/xray/) +product. + +# Feedback + +Feedback on this release is more than welcome. Feel free to create new +[GitHub issues](https://github.com/openresty/openresty/issues) or send emails to one of our [mailing lists](community.html). diff --git a/v2/en/changelog-1027001.md b/v2/en/changelog-1027001.md index c142c7666..d6c1dd3f1 100644 --- a/v2/en/changelog-1027001.md +++ b/v2/en/changelog-1027001.md @@ -4,6 +4,49 @@ @created 2024-08-14 14:33 GMT ---> +# Version 1.27.1.3 - 16 Jul 2025 + +* upgraded [lua-resty-redis](https://github.com/openresty/lua-resty-redis) to v0.33 + * bugfix: connection is closed after the blpop and brpop calls time out. _Thanks 冉朋 for the patch._ + * docs: fix typo in README.markdown. _Thanks hms5232 for the patch._ + * optimize: return setmetatable is NYI which can not be jit compiled. (#287) _Thanks Zero King for the patch._ +* upgraded [headers-more-nginx-module](https://github.com/openresty/headers-more-nginx-module) to v0.39 + * bugfix: didn't set next to NULL for the output header. _Thanks lijunlong for the patch._ + * Move the LICENSE content to a separate file. _Thanks uhliarik for the patch._ +* upgraded [ngx_devel_kit](https://github.com/simplresty/ngx_devel_kit) to v0.3.4 + * src/ndk.h: Do not #error if 'NDK' is undefined _Thanks Simpl for the patch._ + * src/ndk.h: do not #error if 'NDK' is undefined _Thanks Zurab Kvachadze for the patch._ + * src/ndk.h: Update version _Thanks Simpl for the patch._ +* upgraded [lua-resty-mysql](https://github.com/openresty/lua-resty-mysql) to v0.28 + * bugfix: mysql driver doesn't handle well server side query timeout (Query execution was interrupted). _Thanks Nir Nahum for the patch._ +* upgraded [luajit2](https://github.com/openresty/luajit2) to v2.1-20250529 + * Add compatibility string coercion for fp:seek() argument. _Thanks Mike Pall for the patch._ + * ARM64: Fix pass-by-value struct calling conventions. _Thanks Mike Pall for the patch._ + * ARM: Fix soft-float math.min()/math.max(). _Thanks Mike Pall for the patch._ + * Avoid out-of-range PC for stack overflow error from snapshot restore. _Thanks Mike Pall for the patch._ + * Avoid unpatching bytecode twice after a trace flush. _Thanks Mike Pall for the patch._ + * bugfix: table.clone can't work after commit 538a82133ad. _Thanks lijunlong for the patch._ + * Change handling of nil value markers in template tables. _Thanks Mike Pall for the patch._ + * Change handling of nil value markers in template tables. _Thanks Mike Pall for the patch._ + * FFI: Add pre-declared int128_t, uint128_t, __int128 types. _Thanks Mike Pall for the patch._ + * FFI: Fix dangling CType references. _Thanks Mike Pall for the patch._ + * Fix error generation in load*. _Thanks Mike Pall for the patch._ + * Fix handling of nil value markers in template tables. _Thanks Mike Pall for the patch._ + * Fix JIT slot overflow during up-recursion. _Thanks Mike Pall for the patch._ + * Fix state restore when recording __concat metamethod. _Thanks Mike Pall for the patch._ + * Improve CLI signal handling on POSIX. _Thanks Mike Pall for the patch._ + * Initialize unused value when specializing to cdata metatable. _Thanks Mike Pall for the patch._ + * macOS: Add suport for Apple hardened runtime. _Thanks Mike Pall for the patch._ + * macOS: Fix Apple hardened runtime support and put behind build option. _Thanks Mike Pall for the patch._ + * macOS: Fix support for Apple hardened runtime. _Thanks Mike Pall for the patch._ + * Merge from upstream v2.1. _Thanks lijunlong for the patch._ + * Prevent Clang UB 'optimization' which breaks integerness checks. _Thanks Mike Pall for the patch._ + * Remove Cygwin from docs, since it's not a supported target. _Thanks Mike Pall for the patch._ + * REVERT: Change handling of nil value markers in template tables. _Thanks Mike Pall for the patch._ + * Use dylib extension for iOS installs, too. _Thanks Mike Pall for the patch._ + * Windows: Allow mixed builds with msvcbuild.bat. _Thanks Mike Pall for the patch._ + * Windows: Clarify installation directory layout. _Thanks Mike Pall for the patch._ + # Version 1.27.1.2 - 14 Mar 2025 * upgraded [lua-nginx-module](https://github.com/openresty/lua-nginx-module) to v0.10.28 diff --git a/v2/en/download.md.tt2 b/v2/en/download.md.tt2 index ba7d926b0..72e1d21bd 100644 --- a/v2/en/download.md.tt2 +++ b/v2/en/download.md.tt2 @@ -11,8 +11,8 @@ OpenResty® provides [official pre-built packages](linux-packages.html) for common Linux distributions. -We currently support Ubuntu, Debian, RHEL, CentOS, Fedora, OpenSUSE, Alpine, -Amazon Linux, Rocky Linux, Oracle Linux, and CBL Mariner. +We currently support Ubuntu, Debian, RHEL, CentOS, RockyLinux, AlmaLinux, Fedora, OpenSUSE, Alpine, +Amazon Linux, Oracle Linux, and CBL Mariner. We also provide official package repositories for our users so that receiving and installing package updates can be trivial. @@ -21,7 +21,7 @@ installing package updates can be trivial. All the releases are signed by the public PGP key `A0E98066` of Yichun Zhang. -[% ver = "1.27.1.2" -%] +[% ver = "1.27.1.3" -%] * For 32-bit Windows: [openresty-[% ver %]-win32.zip](https://openresty.org/download/openresty-[% ver %]-win32.zip)   16MB   [PGP](https://openresty.org/download/openresty-[% ver %]-win32.zip.asc) - 14 Mar 2025 * For 64-bit Windows: [openresty-[% ver %]-win64.zip](https://openresty.org/download/openresty-[% ver %]-win64.zip)   16MB   @@ -65,13 +65,17 @@ the instructions on the [Installation](installation.html) page to build and install it. ## Lastest release -[% ver = "1.27.1.2" -%] +[% ver = "1.27.1.3" -%] * [openresty-[% ver %].tar.gz](https://openresty.org/download/openresty-[% ver %].tar.gz)   5.4MB   [PGP](https://openresty.org/download/openresty-[% ver %].tar.gz.asc)   -[Changes](changelog-1027001.html) - 14 Mar 2025 +[Changes](changelog-1027001.html) - 16 Jul 2025 ## Legacy releases Sometimes, users may want to download old releases. +[% ver = "1.27.1.2" -%] +* [openresty-[% ver %].tar.gz](https://openresty.org/download/openresty-[% ver %].tar.gz)   5.4MB +  [PGP](https://openresty.org/download/openresty-[% ver %].tar.gz.asc)   +[Changes](changelog-1027001.html) - 14 Mar 2025 [% ver = "1.27.1.1" -%] * [openresty-[% ver %].tar.gz](https://openresty.org/download/openresty-[% ver %].tar.gz)   5.4MB   [PGP](https://openresty.org/download/openresty-[% ver %].tar.gz.asc)   diff --git a/v2/images/header-images/dynamic-tracing-challenge.jpg b/v2/images/header-images/dynamic-tracing-challenge.jpg new file mode 100644 index 000000000..c736ce230 Binary files /dev/null and b/v2/images/header-images/dynamic-tracing-challenge.jpg differ diff --git a/v2/images/header-images/dynamic-tracing-compare.jpg b/v2/images/header-images/dynamic-tracing-compare.jpg new file mode 100644 index 000000000..49109fc28 Binary files /dev/null and b/v2/images/header-images/dynamic-tracing-compare.jpg differ diff --git a/v2/images/header-images/dynamic-tracing-diagnose.jpg b/v2/images/header-images/dynamic-tracing-diagnose.jpg new file mode 100644 index 000000000..f460947a7 Binary files /dev/null and b/v2/images/header-images/dynamic-tracing-diagnose.jpg differ diff --git a/v2/images/header-images/dynamic-tracing-future-debug.jpg b/v2/images/header-images/dynamic-tracing-future-debug.jpg new file mode 100644 index 000000000..e881ddfb3 Binary files /dev/null and b/v2/images/header-images/dynamic-tracing-future-debug.jpg differ diff --git a/v2/images/header-images/dynamic-tracing-trend.jpg b/v2/images/header-images/dynamic-tracing-trend.jpg new file mode 100644 index 000000000..51f160ce1 Binary files /dev/null and b/v2/images/header-images/dynamic-tracing-trend.jpg differ diff --git a/v2/images/header-images/undo-java-file-bt.jpg b/v2/images/header-images/undo-java-file-bt.jpg new file mode 100644 index 000000000..946802fa9 Binary files /dev/null and b/v2/images/header-images/undo-java-file-bt.jpg differ diff --git a/v2/images/header-images/undo-openresty-lua-bt.jpg b/v2/images/header-images/undo-openresty-lua-bt.jpg new file mode 100644 index 000000000..7dc985e5d Binary files /dev/null and b/v2/images/header-images/undo-openresty-lua-bt.jpg differ diff --git a/v2/images/header-images/undo-perl-bt.jpg b/v2/images/header-images/undo-perl-bt.jpg new file mode 100644 index 000000000..394852cd3 Binary files /dev/null and b/v2/images/header-images/undo-perl-bt.jpg differ diff --git a/v2/images/header-images/undo-python-network-bt.jpg b/v2/images/header-images/undo-python-network-bt.jpg new file mode 100644 index 000000000..fb2b28d26 Binary files /dev/null and b/v2/images/header-images/undo-python-network-bt.jpg differ diff --git a/v2/images/header-images/xray-black-box.jpg b/v2/images/header-images/xray-black-box.jpg new file mode 100644 index 000000000..aa7a0d5c8 Binary files /dev/null and b/v2/images/header-images/xray-black-box.jpg differ diff --git a/v2/images/header-images/xray-casestudy-lua-lru.jpg b/v2/images/header-images/xray-casestudy-lua-lru.jpg new file mode 100644 index 000000000..c6861af4e Binary files /dev/null and b/v2/images/header-images/xray-casestudy-lua-lru.jpg differ diff --git a/v2/images/header-images/xray-customer-casestudy-dns.jpg b/v2/images/header-images/xray-customer-casestudy-dns.jpg new file mode 100644 index 000000000..ffc222070 Binary files /dev/null and b/v2/images/header-images/xray-customer-casestudy-dns.jpg differ diff --git a/v2/images/header-images/xray-new-feature-je.jpg b/v2/images/header-images/xray-new-feature-je.jpg new file mode 100644 index 000000000..4395adb3a Binary files /dev/null and b/v2/images/header-images/xray-new-feature-je.jpg differ diff --git a/v2/images/header-images/ylang-simple-intro.jpg b/v2/images/header-images/ylang-simple-intro.jpg new file mode 100644 index 000000000..a29296a62 Binary files /dev/null and b/v2/images/header-images/ylang-simple-intro.jpg differ diff --git a/v2/lua/openresty_org/templates.lua b/v2/lua/openresty_org/templates.lua index 40a031d26..8b4047808 100644 --- a/v2/lua/openresty_org/templates.lua +++ b/v2/lua/openresty_org/templates.lua @@ -430,70 +430,70 @@ template_map['news-cn.tt2'] = function (context) local output = {} local i = 0 -i = i + 1 output[i] = '\n
\n
\n \n \n \n
' +i = i + 1 output[i] = '\n
\n
\n \n \n \n
' -- line 7 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) -i = i + 1 output[i] = ' OpenResty 1.27.1.2 ' +i = i + 1 output[i] = ' OpenResty 1.27.1.3 ' -- line 7 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is now released!' }}) -i = i + 1 output[i] = '
\n
\n
\n \n \n \n
' +i = i + 1 output[i] = '
\n
\n
\n \n \n \n
' -- line 13 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) -i = i + 1 output[i] = ' OpenResty 1.27.1.1 ' +i = i + 1 output[i] = ' OpenResty 1.27.1.2 ' -- line 13 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is now released!' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 16 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 16 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' OpenResty XRay 助力 LLVM clang 性能优化实践 ' +i = i + 1 output[i] = ' UDB + OpenResty XRay:解锁 OpenResty 应用性能之谜 ' -- line 16 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 19 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 19 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' 自我优化:OpenResty XRay 的性能蜕变 ' +i = i + 1 output[i] = ' UDB 与 OpenResty XRay 如何让你看透 Perl 代码执行全过程 ' -- line 19 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 22 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 22 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' OpenResty XRay 助力脚本性能提升 44 倍 ' +i = i + 1 output[i] = ' UDB 与 OpenResty XRay:如何分析 Java 应用中的文件操作 ' -- line 22 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 25 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 25 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' 跨介质数据结构漂移:OpenResty XRay 助力性能提升 20 倍 ' +i = i + 1 output[i] = ' 结合 UDB 的时间旅行功能,揭秘 Python 代码执行过程 ' -- line 25 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 28 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 28 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' 从 OOM 到 O(1):OpenResty 流式 JSON 解析器的实现之道 ' +i = i + 1 output[i] = ' 技术案例:如何使用 OpenResty XRay 追踪一个 LRU 缓存引发的内存泄漏 ' -- line 28 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 31 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 31 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' 从数天到数小时:OpenResty XRay 如何让 Linux shred 工具提速几十倍 ' +i = i + 1 output[i] = ' 技术实战:OpenResty XRay 助力企业 DNS 服务性能优化 60% 案例解析 ' -- line 31 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) i = i + 1 output[i] = '
\n
\n
' @@ -510,70 +510,70 @@ template_map['news-en.tt2'] = function (context) local output = {} local i = 0 -i = i + 1 output[i] = '\n
\n
\n \n \n \n
' +i = i + 1 output[i] = '\n
\n
\n \n \n \n
' -- line 7 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) -i = i + 1 output[i] = ' OpenResty 1.27.1.2 ' +i = i + 1 output[i] = ' OpenResty 1.27.1.3 ' -- line 7 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is now released!' }}) -i = i + 1 output[i] = '
\n
\n
\n \n \n \n
' +i = i + 1 output[i] = '
\n
\n
\n \n \n \n
' -- line 13 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) -i = i + 1 output[i] = ' OpenResty 1.27.1.1 ' +i = i + 1 output[i] = ' OpenResty 1.27.1.2 ' -- line 13 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is now released!' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 16 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 16 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' OpenResty XRay Empowers LLVM clang Performance Optimization Practices ' +i = i + 1 output[i] = ' How UDB and OpenResty XRay Let You See Through the Entire Perl Code Execution Process ' -- line 16 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 19 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 19 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' Self-Optimization: The Performance Evolution of OpenResty XRay ' +i = i + 1 output[i] = ' UDB + OpenResty XRay: Unlocking the Mystery of OpenResty Application Performance ' -- line 19 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 22 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 22 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' OpenResty XRay Helps Boost Script Performance by 44 Times ' +i = i + 1 output[i] = ' UDB and OpenResty XRay: How to Analyze File Operations in Java Applications ' -- line 22 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 25 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 25 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' Cross-Media Data Structure Drift: OpenResty XRay Enables 20x Performance Improvement ' +i = i + 1 output[i] = ' Unveiling Python Code Execution with UDB ' -- line 25 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 28 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 28 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' From OOM to O(1): The Implementation Path of Streaming JSON Parser ' +i = i + 1 output[i] = ' Case Study: How to Trace a Memory Leak Caused by an LRU Cache Using OpenResty XRay ' -- line 28 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 31 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 31 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' From Days to Hours: How OpenResty XRay Accelerated the Linux shred Tool by Dozens of Times ' +i = i + 1 output[i] = ' Performance Breakthrough: 60% DNS Optimization Success with OpenResty XRay ' -- line 31 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) i = i + 1 output[i] = '
\n
\n
' @@ -765,7 +765,7 @@ template_map['posts-slide-cn.tt2'] = function (context) i = i + 1 output[i] = '\n
\n

' -- line 3 "posts-slide-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'More Interesting Topics' }}) -i = i + 1 output[i] = '

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n\n\n\n\n' +i = i + 1 output[i] = '\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n\n\n\n\n' return output end @@ -782,7 +782,7 @@ template_map['posts-slide-en.tt2'] = function (context) i = i + 1 output[i] = '\n
\n

' -- line 3 "posts-slide-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'More Interesting Topics' }}) -i = i + 1 output[i] = '

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n\n\n\n\n' +i = i + 1 output[i] = '\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n\n\n\n\n' return output end diff --git a/v2/po/cn.po b/v2/po/cn.po index e64216494..109a3a6ca 100644 --- a/v2/po/cn.po +++ b/v2/po/cn.po @@ -97,10 +97,10 @@ msgstr "新博客文章" msgid "is published." msgstr "已发表。" -#: templates/posts-slide-cn.tt2:3 -msgid "More Interesting Topics" -msgstr "更多有趣的文章" - #: templates/sidebar.tt2:19 msgid "Timeline" msgstr "最近更新" + +#: templates/posts-slide-cn.tt2:3 +msgid "More Interesting Topics" +msgstr "更多有趣的文章" diff --git a/v2/templates/news-cn.tt2 b/v2/templates/news-cn.tt2 index 24b668a8e..098ed91e2 100644 --- a/v2/templates/news-cn.tt2 +++ b/v2/templates/news-cn.tt2 @@ -1,33 +1,33 @@
-
+
-
[% c.l("New!") %] OpenResty 1.27.1.2 [% c.l("is now released!") %]
+
[% c.l("New!") %] OpenResty 1.27.1.3 [% c.l("is now released!") %]
-
+
-
[% c.l("New!") %] OpenResty 1.27.1.1 [% c.l("is now released!") %]
+
[% c.l("New!") %] OpenResty 1.27.1.2 [% c.l("is now released!") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] OpenResty XRay 助力 LLVM clang 性能优化实践 [% c.l("is published.") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] UDB + OpenResty XRay:解锁 OpenResty 应用性能之谜 [% c.l("is published.") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] 自我优化:OpenResty XRay 的性能蜕变 [% c.l("is published.") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] UDB 与 OpenResty XRay 如何让你看透 Perl 代码执行全过程 [% c.l("is published.") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] OpenResty XRay 助力脚本性能提升 44 倍 [% c.l("is published.") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] UDB 与 OpenResty XRay:如何分析 Java 应用中的文件操作 [% c.l("is published.") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] 跨介质数据结构漂移:OpenResty XRay 助力性能提升 20 倍 [% c.l("is published.") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] 结合 UDB 的时间旅行功能,揭秘 Python 代码执行过程 [% c.l("is published.") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] 从 OOM 到 O(1):OpenResty 流式 JSON 解析器的实现之道 [% c.l("is published.") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] 技术案例:如何使用 OpenResty XRay 追踪一个 LRU 缓存引发的内存泄漏 [% c.l("is published.") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] 从数天到数小时:OpenResty XRay 如何让 Linux shred 工具提速几十倍 [% c.l("is published.") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] 技术实战:OpenResty XRay 助力企业 DNS 服务性能优化 60% 案例解析 [% c.l("is published.") %]
\ No newline at end of file diff --git a/v2/templates/news-en.tt2 b/v2/templates/news-en.tt2 index 0b31ee165..fabc172e8 100644 --- a/v2/templates/news-en.tt2 +++ b/v2/templates/news-en.tt2 @@ -1,33 +1,33 @@
-
+
-
[% c.l("New!") %] OpenResty 1.27.1.2 [% c.l("is now released!") %]
+
[% c.l("New!") %] OpenResty 1.27.1.3 [% c.l("is now released!") %]
-
+
-
[% c.l("New!") %] OpenResty 1.27.1.1 [% c.l("is now released!") %]
+
[% c.l("New!") %] OpenResty 1.27.1.2 [% c.l("is now released!") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] OpenResty XRay Empowers LLVM clang Performance Optimization Practices [% c.l("is published.") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] How UDB and OpenResty XRay Let You See Through the Entire Perl Code Execution Process [% c.l("is published.") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] Self-Optimization: The Performance Evolution of OpenResty XRay [% c.l("is published.") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] UDB + OpenResty XRay: Unlocking the Mystery of OpenResty Application Performance [% c.l("is published.") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] OpenResty XRay Helps Boost Script Performance by 44 Times [% c.l("is published.") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] UDB and OpenResty XRay: How to Analyze File Operations in Java Applications [% c.l("is published.") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] Cross-Media Data Structure Drift: OpenResty XRay Enables 20x Performance Improvement [% c.l("is published.") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] Unveiling Python Code Execution with UDB [% c.l("is published.") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] From OOM to O(1): The Implementation Path of Streaming JSON Parser [% c.l("is published.") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] Case Study: How to Trace a Memory Leak Caused by an LRU Cache Using OpenResty XRay [% c.l("is published.") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] From Days to Hours: How OpenResty XRay Accelerated the Linux shred Tool by Dozens of Times [% c.l("is published.") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] Performance Breakthrough: 60% DNS Optimization Success with OpenResty XRay [% c.l("is published.") %]
\ No newline at end of file diff --git a/v2/templates/posts-slide-cn.tt2 b/v2/templates/posts-slide-cn.tt2 index 810f70c43..0b2819bac 100644 --- a/v2/templates/posts-slide-cn.tt2 +++ b/v2/templates/posts-slide-cn.tt2 @@ -11,105 +11,105 @@
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
diff --git a/v2/templates/posts-slide-en.tt2 b/v2/templates/posts-slide-en.tt2 index 09767892f..9736fae56 100644 --- a/v2/templates/posts-slide-en.tt2 +++ b/v2/templates/posts-slide-en.tt2 @@ -11,105 +11,105 @@
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
diff --git a/v2/util/news.pug b/v2/util/news.pug index 807cd4295..1a4b1cf6d 100644 --- a/v2/util/news.pug +++ b/v2/util/news.pug @@ -1,21 +1,21 @@ .news .news-item - a(href="ann-1027001002.html") + a(href="ann-1027001003.html") picture source(srcset="../images/logo.webp" type="image/webp") img.news-img(src="../images/logo.png") .news-description strong.news-hint [% c.l("New!") %]  - a(href="ann-1027001002.html") OpenResty 1.27.1.2 + a(href="ann-1027001003.html") OpenResty 1.27.1.3 span  [% c.l("is now released!") %] .news-item - a(href="ann-1027001001.html") + a(href="ann-1027001002.html") picture source(srcset="../images/logo.webp" type="image/webp") img.news-img(src="../images/logo.png") .news-description strong.news-hint [% c.l("New!") %]  - a(href="ann-1027001001.html") OpenResty 1.27.1.1 + a(href="ann-1027001002.html") OpenResty 1.27.1.2 span  [% c.l("is now released!") %] each val in news