NGINX Unit 1.31.0 发布,引入 Unit WebAssembly
Nginx Unit 是一个动态应用服务器,能够与 Nginx Plus 和 Nginx 开源版并行或独立运行。Nginx Unit 支持 RESTful JSON API,可以在不中断服务的情况下更改配置,并可运行基于多种语言和架构的应用。Nginx Unit 生来就是为满足分布式应用的需求而设计的,可为您的服务网格奠定坚实的基础。
Nginx Unit 1.31.0 正式发布,这是继 5 月份发布 1.30 之后的又一个重要里程碑。此版本中引入 Unit WebAssembly (WASM) 功能,代表了 Unit 功能的重大飞跃。
还带来了显着的新增功能 - 能够发送 response headers 并利用配置中 response headers 变量的功能。这些增强功能将大大增加提高灵活性和自定义选项。以及一些 bug 修复,并引入了更多改进措施,以确保无缝增强用户体验。
- Python 支持 ASGI lifespan_state
- unitc CLI 工具现在可对配置 URI 进行交互式编辑
Server-Side WebAssembly: Technology Preview
由于 Unit 已经为各种编程语言运行时提供了原生支持,因此在 NGINX Unit 中添加服务器端 WebAssembly 支持的挑战也就水到渠成了。
Unit 现在可以将 WebAssembly 模块作为本机应用程序类型运行。
Working with Response Headers
完全控制发送回客户端的 HTTP response headers 是社区一直在期待的功能。在 1.31 中添加了对使用 Unit 路由器添加、删除或覆盖 HTTP response headers 以及使用专用 response header 变量中的值的支持。
Set Response Headers
如上所述,你可以使用 Unit 的路由器来添加、删除或覆盖 response headers。
{ "listeners": { "*:80": { "pass": "routes" } } }
使用 Unit 来托管前端和 Web API。在这种情况下,语言或单元应用程序对象并不重要。当前的配置如下所示:
{ "listeners": { "*:8080": { "pass": "routes/app" } }, "routes": { "app": [ { "match": { "uri": [ "/api/*" ] }, "action": { "pass": "applications/api" } }, { "action": { "share": [ "/var/www/frontend$uri", "/var/www/frontend/index.html" ] } } ] } }
新引入的response_headers
对象可以添加到任何 action
对象中。该response_headers
对象包含一个 key/value 对列表,每个 key/value 对定义一个 header。如果 header name 与响应中已存在的 response header 匹配,则其值将被替换。否则,将创建一个新的 response header。值null
从响应中省略 header。空字符串则不然。首先,要隐藏 X-Version
API 应用程序发送的 header:
{ "action": { "pass": "applications/api", "response_headers": { "X-Version": null } } }
对于前端,希望添加版本哈希来识别已部署的版本,而无需深入研究源代码:
{ "action": { "share": [ "/var/www/frontend$uri", "/var/www/frontend/index.html" ], "response_headers": { "X-FE-Version": "abc1234def" } } }
除了 fixed values 之外,还可以调用 NJS 函数来使用一些更复杂的规则创建值。
"Upper-Case": "`${host.toUpperCase()}`"
Use Response Header Variables
在 1.31 中添加了一组新的变量来控制 response headers。当 Unit 收到来自 Unit 上托管的应用程序的响应,并且你想要根据应用程序共享的值修改现有 response headers 时,Unit 必须保留该特定值。
[ { "action": { "pass": "applications/calc", "response_headers": { "Content-Type": "${response_header_content_type};charset=iso-8859-1" } } } ]
CLI 交互模式
在1.29中引入了curl的封装脚本来简化与Unit API的交互。在1.31中则为该脚本添加了交互式编辑模式:
$ unitc EDIT /config
这将在$EDITOR
当前定义的编辑器中打开给定端点的 JSON 配置。在大多数情况下,这将默认为 nano。如果你想使用其他编辑器,比如 vim:
$ EDITOR=vim unitc EDIT /config
保存更改会自动应用更改并重新配置 Unit。
更多详情可查看官方公告。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
WoTerm v9.28.7 发布
v9.28.7 [SFTP]在管理员中添加双击打开本地文件的开关。 [History]访问历史的条目数量由原来5个增加至20个。 [文本终端]优化多行字符串粘贴的处理逻辑,尽可能使换行处理与终端模式一致。 [本地串口]增加输入历史管理功能,避免重复输入等其它小优化。 [SFTP] Add a switch in the administrator to double-click to open a local file. The number of entries accessing history has increased from 5 to 20. [Text terminal] Optimize the processing logic for pasting multiple lines of strings, making the line wrapping process as consistent as possible with the terminal mode. [Serial port]Add input history management function ...
- 下一篇
Spark-Store 4.2.7.1 已经发布,Wine 应用商店
Spark-Store 4.2.7.1 已经发布,Wine 应用商店 此版本更新内容包括: 修复:aptss加锁失败现在会正常报错 新增:在aptss的特定操作时添加了提示 新增:在aptss提示加粗 调整:ssinstall验证支持使用cdn.d.获取 说明:普通电脑下载 amd64 的包,使用鲲鹏,飞腾或其他 arm 芯片的电脑用 arm64 的包; 说明:终端版 console 适用于所有架构,而且不需要依赖包,但是只提供最基本的功能。 详情查看:https://gitee.com/deepin-community-store/spark-store/releases/4.2.7.1
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题