Nginx Unit 是一个动态应用服务器,能够与 Nginx Plus 和 Nginx 开源版并行或独立运行。Nginx Unit 支持 RESTful JSON API,可以在不中断服务的情况下更改配置,并可运行基于多种语言和架构的应用。Nginx Unit 生来就是为满足分布式应用的需求而设计的,可为您的服务网格奠定坚实的基础。
Nginx Unit 1.29.0 正式发布,更新内容如下:
NGINX JavaScript 集成
NGINX JavaScript(njs)是一个服务器端的 JavaScript 运行时,为超快的初始化进行了优化。njs 最初是为扩展 NGINX 而设计的,它的架构适合于集成,现在它也扩展了 Unit!
这个版本带来了 NGINX JavaScript 引擎与 Unit 的初步整合。未来的版本将扩展这些功能,以实现更复杂的使用。在 Unit 1.29.0 中,JavaScript 模板字符串可以在配置字符串中使用,以执行 JavaScript 表达式。
配置工具
这个版本引入了两个新的命令行工具来简化 Unit 的安装和配置。
- setup-unit
setup-unit 工具可以在安装 Unit 之前自动配置软件库。它还通过配置和提供一个 "欢迎" 网页来验证一个新的安装。这为首次使用的用户消除了一些安装过程中的疑虑,并指导他们进行下一步的操作。现在在一个典型的 Linux 系统上安装和运行 Unit 就像这样简单。
wget [<https://unit.nginx.org/_downloads/setup-unit>](<https://unit.nginx.org/_downloads/setup-unit>) && chmod +x setup-unit
sudo ./setup-unit repo-config
sudo apt install unit | sudo | sudo yum install unit
sudo ./setup-unit welcome
- unitc
unitc 工具提供了一个命令行接口,作为 curl(1) 的包装器,用于 Unit 实例的日常配置和管理。它的目的是最大限度地减少打字的工作量,并使用户免受奇特的 curl(1) 选项的影响。在大多数情况下,你只需在 Unit 的控制 API 中指定一个 URI,unitc 就会执行相应的 curl(1) 命令来读取或修改相应的配置部分。
每个应用的 Cgroups
当开发 Unit 1.28.0 时,我们的主要目标是扩展对任何种类的可观察性的支持。在 1.29.0 中,我们为这套系统增加了另一个重要的功能。
在 Unit 1.29.0 中,我们支持 cgroup V2 API,以提供将每个应用程序放入自己的 cgroup 或将多个应用程序放入一个 cgroup 的能力。下面的配置说明了新增加的配置语法。
"applications": {
"cgroup-demo": {
"type": "python",
"path": "/path/to/app/dir",
"module": "app",
"isolation": {
"cgroup": {
"path": "unit/cgroup-demo"
}
}
}
}
新的变量
在 1.29.0 版本中,我们还增加了一个新的变量: $request_time
记录了 Unit 处理请求的秒数。该计时器在请求到达 Unit 监听器时启动,在 Unit 向客户端发送响应时停止。这中间的一切,例如应用内处理时间、读取静态资产,都会增加到计时器中。
语言模块中的版本更新
- Python 3.11
- PHP 8.2
- Node.js 19.0
- Ruby 的 Rack 3 版
- Java 19(由于 Ubuntu 22.10)
平台更新
- 增加了对 Ubuntu 22.10 的支持
- 增加了对 Fedora 37 的支持
更多详情可查看:https://unit.nginx.org/news/2022/unit-1.29.0-released/