写点什么

NGINX 发布支持动态配置的开源 Web 服务器

  • 2018-05-08
  • 本文字数:1380 字

    阅读完需:约 5 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

NGINX最近发布了NGINX Unit 1.0 版。NGINX Unit 是一种开源的Web 和应用服务,它支持远程配置和动态配置,使得配置上的更改不会对服务造成中断。Unit 1.0 还支持在同一实例中运行Go、Perl、PHP、Python 和Ruby 等多种语言,也支持同一语言的多个版本。

NGINX Unit 并非依赖于静态的配置文件,而是使用 JSON通过REST API 进行配置。所有的配置直接存储在内存中,支持运行中的服务无需重启即可应用配置更改。路由过程同样也是持续的,不需要重启。

Unit 的基本配置需要指定至少一个监听器和一个应用。在对监听器的定义中,指定了 Unit 监听的具体 IP 和端口,并重定向到一个命名的应用。在对应用的定义中,可支持指定具体的语言、应用文件的目录和过程的数量。

例如,用户可以做如下的配置,在端口 8300 上定义一个监听器,为“/www/blogs/scripts”目录中的 PHP 应用提供服务,最大可使用 20 个进程:

复制代码
{
"listeners": {
"*:8300": {
"application": "blogs"
}
},
"applications": {
"blogs": {
"type": "php",
"processes": 20,
"root": "/www/blogs/scripts",
"index": "index.php"
}
}
}

Unit 官方文档中的推荐做法,是将上述配置存储在一个(受版本控制的)文件中,然后 POST 到服务器端。如果上述配置是存储在一个名为 start.json 的文件中,那么可以使用如下命令创建初始配置:

复制代码
# curl -X PUT -d @/path/to/start.json --unix-socket /path/to/control.unit.sock http://localhost/

Unit 实现了路由进程和具体运行应用代码的应用进程相分离。每个应用过程池在自身的沙箱中运行,这确保了该进程与其它进程的分离。这种分离支持运行不同语言的多个应用分享同一个服务器。

图 NGINX Unix 的架构(NGINX 官方提供)

下面的配置例子,设置在同一个 Unit 服务器中运行 Go 和 Perl 应用:

复制代码
{
"listeners": {
"*:8500": {
"application": "go_chat_app"
},
"127.0.0.1:8600": {
"application": "bugtracker"
}
},
"applications": {
"go_chat_app": {
"type": "go",
"user": "www-chat",
"group": "www-chat",
"working_directory": "/www/chat",
"executable": "bin/chat_app"
},
"bugtracker": {
"type": "perl",
"processes": 3,
"user": "www",
"group": "www",
"working_directory": "/www/bugtracker",
"script": "app.psgi"
} }
}

据 NGINX 产品负责人 Owen Garrett 介绍,Unit 适用于独立架构,也适用于基于微服务的架构。它支持对进程做按需扩展,并在每个进程自身的沙箱中执行该进程。

NGINX 规划在未来的版本中添加对 Java 和 Node.js 语言的支持。企业还规划支持 SSL 和 HTTP/2,以及使用 URI 和主机名提供对静态内容和路由的服务。

NGINX Unit 使用 Apache License 2.0 许可开源,针对大多数操作系统提供了预构建的软件包,包括 Debian CentOS Ubuntu 等。在 Docker Hub 上也提供了 Unit 的 Docker 容器

查看英文原文: NGINX Releases Open Source Web Server with Dynamic Configuration

2018-05-08 19:0011798
用户头像

发布了 391 篇内容, 共 156.6 次阅读, 收获喜欢 257 次。

关注

评论

发布
暂无评论
发现更多内容

当搜索遇见 AIGC:京东零售的“千人千面”素材生成实践

京东零售技术

面试官狂问的 28 个 RAG 问题全解析:从基础到架构优化,一次讲透!

测吧(北京)科技有限公司

Scrivener 3 for Mac 功能强大的写作软件

做梦万元户

谷云科技深度参与编制《多源异构数据融合技术规范》团体标准,共创数据融合技术标准

谷云科技RestCloud

技术标准 数据安全 数据融合 ETL 多源异构

同城洗车小程序系统:一站式洗车服务解决方案

微擎应用市场

2026跨境出海新趋势:社交电商、AI赋能与可持续性成破局关键

Wolink

跨境电商 品牌营销 海外社媒营销 海外营销推广 达人营销

央企智变新实践,网易灵动助力世界500强集团打造无人化标杆

网易伏羲

网易伏羲 具身智能 网易灵动 工程机械智能化 无人装载机

iA Writer for Mac 专业MD写作工具

做梦万元户

KCD 杭州站 x OpenInfra Days China 首次联手!华为云云原生团队与您共探Karmada多模板工作负载多集群管理方案

华为云原生团队

云计算 容器 云原生

蒲公英异地组网路由器全新固件:4G联网、策略路由、日志管理全面升级

科技经济

别被“万能”忽悠了!超融合选型忽视这2点,未来升级可能“寸步难行”!

智驱前线

万丈高楼平地起:从“输入-处理-输出”第一性原理,看懂系统架构的演进

poemyang

高并发系统 高并发架构

「从画面生成到叙事生成:PrompTale的内容生产新范式」

极客天地

东南亚vs欧美?2026最具潜力的跨境出海市场深度解析

Wolink

企业出海 跨境电商 海外社媒营销 海外营销推广

AI 相片大师小程序:智能影像黑科技,解锁娱乐与变现双重价值

微擎应用市场

真实故事分享|从全职宝妈到备考学生,他们用“碎片时间”灵活兼职、月入千元

网易伏羲

网易伏羲 数字游民 群体智能 智能货柜 网易有灵众包

一款AB实验分析智能体是如何诞生的

京东零售技术

党建学习一体化解决方案:答题积分 + 学习管理微擎应用详解

微擎应用市场

标准文库与评审管理系统:为技术团队装上“最强大脑

上海拔俗

【FAQ】HarmonyOS SDK 闭源开放能力 — Push Kit

HarmonyOS SDK

HarmonyOS SDK应用服务

知识付费网盘变现微信小程序系统:资源变现与流量裂变解决方案

微擎应用市场

openresty中filter_by_lua使用

天翼云开发者社区

API网关

用Dify工作流打造你的AI测试智能体,效率提升500%

测吧(北京)科技有限公司

荣耀应用市场《应用隐私高频问题及自检指南 (第一期)》丨开发加油站

荣耀开发者服务平台

应用审核 荣耀开发者服务平台 荣耀应用市场 应用隐私合规 应用违规场景解读

用Dify工作流打造你的AI测试智能体,效率提升500%

测试人

Databend 十月月报:存储过程正式可用,数据流程全面自动化

Databend

传统企业转型之路:制造业的跨境出海实战思考

Wolink

企业出海 海外社媒营销 海外营销推广 品牌推广

A Better Finder Attributes for Mac 文件属性批量修改工具

做梦万元户

NGINX发布支持动态配置的开源Web服务器_REST_Matt Campbell_InfoQ精选文章