NGINX Unit 1.11.0 现已推出,引入静态文件服务

继上个月 NGINX Unit 发布之后,我们又推出了两个新版本:1.11.0 和 1.12.0。版本 1.12.0 主要是一个错误修复版本,但也增加了对 PHP 7.4 的支持,为其全面发布(计划于 11 月下旬)做好准备。然而,NGINX Unit 1.11.0 带来了两个强大的扩展:静态文件服务和应用程序隔离。

提供静态文件

静态文件服务可能是 NGINX Unit 中最令人期待的新功能。几乎从第一天起,用户就一直向我们提出支持它的请求。等待结束了:从版本 1.11.0 开始,NGINX Unit 可以提供静态文件。

实现相当简单。还记得路由配置对象吗?当然可以 – 它是在 1.8.0 版本中引入的。您可能还记得,路由指定如何根据请求的特征(例如作为主机名、URI 或 HTTP 方法)。路由的匹配对象定义这些特征,操作对象指定要执行的处理类型。引入路由时,唯一支持的操作是 pass,它将请求转发到应用程序服务器或另一个路由。 NGINX Unit 1.11.0 引入了共享操作:

{
“听众”:{
“127.0.0.1:8080”:{
“通行证”:“路线”
}
},

“路线”:[
{
“匹配”: {…},
“行动”: {
“分享”:“/data/www/example.com/”
}
}
]
}

此设置告诉 NGINX 单元提供 /data/www/example.com/ 目录及其子目录中的文件(为简单起见,省略了匹配条件。)请注意,您需要向 NGINX 单元授予所需的文件系统权限访问文件。

对文件服务的初步支持包括以下功能:

  • MIME 类型。 NGINX 单元苏支持多种知名内置类型;另外,您可以在 config/settings/http/static/mime_types 对象中添加自定义类型:

    “静止的”: {
    “mime_types”:{
    “文本/纯文本”:[
    “自述文件”,
    “。C”,
    “。H”
    ],

    “应用程序/msword”:“.doc”
    }
    }

  • URI 中的 URL 编码符号。您可以在应用程序请求的静态资产的 URI 和表示 NGINX 单元配置对象的 URI 中包含 URL 编码(保留)字符。例如,给定上面显示的侦听器对象,以下第一个请求针对 css asset 目录中的 stylesheet.css 文件,第二个请求针对 /config/settings/https/static/mime_types 中的值/text/plain 配置对象。

    获取 127.0.0.1:8080/css%20assets/stylesheet.css
    获取本地主机/config/settings/http/static/mime_types/text%2Fplain/

  • 请求标头字段。 NGINX 单元在响应静态文件请求时提供 Content-Type 和 ETag 标头。

当然,我们的目标是在即将发布的版本中添加更多功能。有关配置静态文件服务的详细信息,请参阅我们的文档和操作方法。

应用程序隔离

与静态文件服务不同,这个新功能甚至可能会让我们最热心的追随者感到惊讶。 NGINX Unit 1.11.0 没有太多的排场,甚至没有大量的预先声明,引入了对应用程序(进程)隔离的支持。首先,这提高了 NGINX Unit 托管应用程序的安全性,允许它们在基于 Linux 命名空间的隔离环境中运行(类似于 Docker 容器的工作方式)。

新隔离对象的配置很简单:您可以使用命名空间对象以及 uidmap 和 gidmap 对象中主机与容器之间的 UID 和 GID 映射来指定隔离级别:

“隔离”: {
“命名空间”:{
“凭证l”:真实,
“pid”:正确,
“网络”:真实,
“安装”:假,
“uname”:正确,
“cgroup”:假
},

“uidmap”:[
{
“容器”:1000,
“主持人”:812,
“尺寸”:1
}
],

“gidmap”:[
{
“容器”:1000,
“主持人”:812,
“尺寸”:1
}
]
}

有关详细信息,请参阅我们博客上的文档和 NGINX Unit 的应用程序隔离。

其他更新

NGINX Unit 1.11.0 中另一个值得注意的更新是支持卸载 Java Servlet 容器的 WebSocket 连接,就像我们在 NGINX Unit 1.10.0 中为 Node.js 添加的那样。所需的管道都在幕后,因此无需重新配置基于 WebSocket 的应用程序或修补代码。

结论

在我们近期的计划中,我们非常渴望将代理添加到 NGINX Unit 多样化且强大的功能组合中。但是,如果您对于我们的用户通常容易做的任何其他显着改进的想法,请访问我们的 GitHub 存储库加入讨论和开发。

有兴趣成为 NGINX 的全职工程师吗?查看我们的求职板。

NGINX Plus 订阅者无需额外付费即可获得 NGINX Unit 支持。立即开始 30 天免费试用 NGINX Plus。


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注