点赞
评论
收藏
分享
举报
NGINX Unit 1.30.0 版本更新主要功能介绍
发表于2023-06-12 17:16

浏览 694

从一开始,我们对 NGINX Unit 的愿景就是多功能性、速度和可靠性。以下是我们如何实现这些目标。

灵活性

  • 整个配置被一个友好的 RESTful JSON API 通过 HTTP 动态进行管理。
  • 对配置的更新是在运行时借助零中断的方式进行的。
  • 请求在静态内容、上游服务器和本地应用之间路由。
  • 请求过滤和调度使用复杂的匹配规则,允许正则表达式和 njs 脚本。
  • 多种语言和不同语言版本的应用并行运行。
  • 用于所有支持的语言的通用语言特定 API 无缝运行。
  • 上游服务器组使用加权循环方法提供动态负载均衡。
  • 始发 IP 标识支持 X-Forwarded-For 和类似的头字段。

性能表现

  • 请求在具有高效事件循环(epoll,kqueue)的线程中异步处理。
  • 系统调用和数据复制操作保持在必要的最低限度。
  • 10000 个非活动 HTTP 保持活动连接只占用几 MB 的内存。
  • 路由器和应用进程依赖于通过共享内存上的无锁队列构建的低延迟 IPC。
  • 内置统计数据可深入了解联检组的业绩。
  • 每个应用进程的数量是静态定义的,或者在给定的限制范围内预先扩展。
  • 应用和实例使用统计信息通过 API 收集和公开。
  • Java、Perl、Python 和 Ruby 应用支持多线程请求处理。

安全防护与坚固性

  • 客户端连接由单独的非特权路由器进程处理。
  • 资源不足的情况(内存或描述符不足)和应用崩溃得到了妥善处理。
  • 集成了带有 SNI、会话缓存和票证的 SSL/TLS(OpenSSL 1.0.1 及更高版本)。
  • 不同的应用被隔离在不同的进程中。
  • 应用还可以通过命名空间和文件系统隔离进行容器化。
  • 静态文件服务受益于 chrooting、符号链接和装载点遍历限制。

支持的应用语言

Unit 与以下各项互操作:

  • 通用二进制编译语言:使用嵌入式 libunit 库。
  • Go:通过重写 http 模块。
  • JavaScript(Node.js):通过自动重载 http 和 websocket 模块。
  • Java:通过使用 Servlet 规范 3.1 和 WebSocketAPI。
  • Perl:通过使用 PSGI。
  • PHP:通过使用自定义 SAPI 模块。
  • Python:通过使用支持 WebSocket 的 WSGI 或 ASGI。
  • Ruby:通过使用Rack API。


已修改于2023-06-12 17:16
创作不易,留下一份鼓励
名蒸蛋·柯南

工藤新一(柯南・江户川柯南):本作主角,是一名高中生侦探。在一次偶然事件中,被组织称为“黑衣组织”所灌下神秘药物“APTX4869”,使他的身体缩小成小学生的样子。为了隐藏身份并继续调查黑衣组织,他化名为江户川柯南,寄住在侦探园田平次家中。

关注



写下您的评论
发表评论
全部评论(0)

按点赞数排序

按时间排序

关于作者
名蒸蛋·柯南
工藤新一(柯南・江户川柯南):本作主角,是一名高中生侦探。在一次偶然事件中,被组织称为“黑衣组织”所灌下神秘药物“APTX4869”,使他的身体缩小成小学生的样子。为了隐藏身份并继续调查黑衣组织,他化名为江户川柯南,寄住在侦探园田平次家中。
28
文章
0
问答
2
粉丝
相关文章