Repository navigation
v3.0.1 #2099
0xJacky
announced in
Announcements
v3.0.1
#2099
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
🩹 v3.0.1 fixes two problems found right after v3.0.0. v3.0.0 was released only a day earlier, so its full notes are included below. If you are upgrading from v2, read them: they cover the plugin system, the rebuilt log analytics and what to check when upgrading.
v3.0.1
Features
Bug Fixes
%{Timestamp}by @ChandraChaan (c7c58014)v3.0.0
🎉 Nginx UI v3 is here. It is the biggest change since v2: Nginx UI now runs plugins, installed from a signed marketplace. So far only the DNS-01 providers have moved out of the core into a plugin; everything else stays built in, and log analytics is rebuilt from the ground up.
❤️ Thank you to everyone who tested the v3 branch, and to @Hintay, who designed and built the plugin system.
✨ Highlights
🧩 Plugin system
📦 A lighter core
Moving the DNS providers out of the core makes every installation smaller, and lets the providers update on their own:
nginx-ui-linux-64.tar.gz)🛒 Official marketplace and Developer Center
🌐 DNS-01 becomes an official plugin
📊 Log analytics, rebuilt on a column store
Bleve, a full-text search engine, kept one document per log line with an index on almost every field. Log analytics only ever filters by time, value or substring and then counts, groups or pages, so v3 stores parsed logs in a column store built for exactly that: dictionary-encoded, zstd-compressed columns in blocks the queries can skip by time range.
On 100k combined-format log lines (Apple M5 Pro):
The dashboard's hourly and daily charts over 1M lines went from 61.8 s to 0.1 s in the design benchmark.
.gzis read on from where indexing stopped.status:5xx,ip:10.0.0.0/8,country:CNorrt:0.1..0.5, and visitors are located by country with the GeoLite2 country database built in; the city database is only needed for provinces and cities.🔒 Certificates and security
/api/debugno longer exposes request traces, and audit logs redact credentials, plugin settings included.🛠️ For plugin developers
nginx-ui pluginscaffolds Go and Rust plugins, lints, runs conformance checks, packs and manages signing keys.pluginsnext toapp.ini, for example/etc/nginx-ui/plugins. Keep it on persistent storage; in Docker it is inside the/etc/nginx-uivolume.Changes since v2.9.5
Features
nginx-ui plugincommands to scaffold Go and Rust plugins, lint, run conformance checks, pack and manage signing keys, plus a developer guide at nginxui.com/plugin by @Hintay (5a6bc9de, 9e5012a1, 8b4701e4, 798e20d4)Bug Fixes
/api/debug, and audit logs redact credentials such as passwords, keys and tokens by @0xJacky (d29d549d, e9c97f2e, d90b3904)nginx.confstays editable when a distribution enables njs or Perl modules by @0xJacky (37b5f38e)load_modulelines are ignored when detecting modules by @Dev-next-gen (55162d6e)🩹 v3.0.1 修复了 v3.0.0 发布后发现的两个问题。 v3.0.0 一天前才发布,下面附上它的完整更新日志。从 v2 升级的用户请务必阅读:其中介绍了插件系统、重写后的日志分析,以及升级时需要注意的事项。
中文更新日志
新功能
问题修复
%{Timestamp}by @ChandraChaan (c7c58014)v3.0.0
🎉 Nginx UI v3 正式发布。 这是 v2 以来最大的一次更新:Nginx UI 开始支持插件,插件从经过签名的插件市场安装。目前只有 DNS-01 服务商从核心拆成了插件,其余功能仍然内置;日志分析也彻底重写了。
❤️ 感谢所有参与 v3 测试的用户,也感谢设计并实现插件系统的 @Hintay。
✨ 主要更新
🧩 插件系统
📦 更轻量的核心
DNS 服务商移出核心之后,所有安装都变小了,服务商也可以单独更新:
nginx-ui-linux-64.tar.gz)🛒 官方插件市场和开发者中心
🌐 DNS-01 成为官方插件
📊 日志分析基于列式存储全面重写
Bleve 是全文搜索引擎,它为每行日志保存一个文档,并为几乎所有字段建立索引。而日志分析只会按时间、取值或子串过滤,再做计数、分组或分页,因此 v3 改用专为此设计的列式存储:列按字典编码并分别用 zstd 压缩,按块存放,查询可以按时间范围直接跳过无关的块。
在 10 万行 combined 格式日志上的测试结果(Apple M5 Pro):
在设计阶段的基准测试中,100 万行日志的仪表盘按小时和按天统计从 61.8 秒降到 0.1 秒。
.gz的文件,都会从上次索引停下的位置继续。status:5xx、ip:10.0.0.0/8、country:CN、rt:0.1..0.5这样的字段过滤;内置 GeoLite2 国家数据库,可直接按国家定位访客,只有省份和城市才需要城市数据库。🔒 证书与安全
/api/debug不再暴露请求记录,审计日志会脱敏凭据,包括插件设置。🛠️ 面向插件开发者
nginx-ui plugin命令可以创建 Go 和 Rust 插件脚手架、进行 lint 和一致性检查、打包并管理签名密钥。app.ini所在目录下的plugins中,例如/etc/nginx-ui/plugins,请确保它位于持久化存储上;在 Docker 中它位于/etc/nginx-ui卷内。自 v2.9.5 以来的变更
新功能
nginx-ui plugin命令创建 Go 和 Rust 插件脚手架、进行 lint 和一致性检查、打包并管理签名密钥,nginxui.com/plugin 提供了开发者指南 by @Hintay (5a6bc9de, 9e5012a1, 8b4701e4, 798e20d4)问题修复
/api/debug不再暴露请求记录,审计日志会脱敏密码、密钥和令牌等凭据 by @0xJacky (d29d549d, e9c97f2e, d90b3904)nginx.conf仍可编辑 by @0xJacky (37b5f38e)load_module行 by @Dev-next-gen (55162d6e)Contributors
@0xJacky
@ChandraChaan
@Hintay
@Dev-next-gen
This discussion was created from the release v3.0.1.
All reactions