写点什么

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:0010962
用户头像

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

关注

评论

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

一个有效的图表图像数据提取框架

合合技术团队

人工智能 计算机视觉 表格识别 图象识别

最新版本 Stable Diffusion 开源 AI 绘画工具之汉化篇

极客飞兔

本地化 汉化教程 AI绘画 Stable Diffusion Chinese

字节跳动 Flink 大规模云原生化实践

Apache Flink

大数据 flink 实时计算

人工智能迎来iPhone时刻,拟人化AI进入爆发前夜

硬科技星球

Excel 进阶|只会 Excel 也能轻松搭建指标应用啦

Kyligence

数据分析 Excel数据分析 指标平台

【4月1日 上海站】融云社交泛娱乐出海赋能会,干货、礼品在等你!

融云 RongCloud

互联网 融云 泛娱乐 出海 通讯

如何轻松应对偶发异常

阿里巴巴云原生

阿里云 微服务 云原生

智慧公厕系统:提高管理效率与用户体验的创新解决方案

光明源智慧厕所

智慧城市 智慧物业 智慧屏 智慧机场

NFTScan 与 Dmail 达成合作伙伴,双方在 NFT 数据领域展开合作

NFT Research

NFT

“易+”开源 | 基于 ijkplayer 的 LLS-Player 移动端应用实践

网易云信

开源 实时音视频 低延时直播

CloudQuery 社区版重启 | 我们做了哪些准备?

BinTools图尔兹

数据库 社区版 数据库管理系统

无线WiFi信号强度统计:WiFi Signal Strength Explorer 激活版

真大的脸盆

Mac wifi Mac 软件 无线管理 WiFi统计

风云变幻,尽收眼底!天翼云为气象信息化发展注智赋能

天翼云开发者社区

常见的项目管理问题如何应对?| 得物技术

得物技术

几种快速传输大文件的方式

镭速

超级MMM互助盘DAPP系统开发源代码(案例演示)

开发微hkkf5566

全国首个政企采购云平台:政采云基于 Dubbo 的混合云跨网方案实践

阿里巴巴云原生

阿里云 云原生 dubbo

社招内推!JAVA、测开、数仓、前端均有坑

Qunar技术沙龙

互联网 工作 社招

全球开源盛会!GOTC 2023 即将拉开帷幕,15 大分论坛不容错过!

kk-OSC

大会 #开源

聚焦云原生 | MIAOYUN入选开源GitOps产业联盟生态图景2.0

MIAOYUN

云计算 开源 云原生 开源社区 开源生态

智能、高效、便捷问题定位利器 —— 应用诊断分析平台 ATP 上线

OpenAnolis小助手

内存泄露 龙蜥社区 应用诊断 ATP 异常行为

智慧公厕:现代科技与城市卫生的完美结合

光明源智慧厕所

智慧城市 智慧物业 智慧机场

LED显示屏与DLP拼接屏的优缺点分析

Dylan

LED LED显示屏 户外LED显示屏

GPT-5紧急叫停?千名专家联名呼吁,AI技术的未来又该何去何从?

加入高科技仿生人

人工智能 AI技术 ChatGPT GPT-4

“易+”开源 | 基于 ijkplayer 的 LLS-Player 移动端应用实践

网易智企

开源 实时音视频 低延时直播

共铸国云繁荣生态!天翼云华东中心生态合作大会圆满举行

天翼云开发者社区

云行| 三大重磅发布,助力重庆数字经济新发展!

天翼云开发者社区

深度访谈 NXTF_ 负责人|虚实联动才是通向未来的数字通行证

万事ONES

超越 ChatGPT,GPT-4 将成为下一个“顶流”?

Zilliz

ChatGPT

YRCloudFile V6.10.0 功能新增对 NVIDIA GPUDirect 与回收站的支持

焱融科技

#高性能 #分布式文件存储 #文件存储 #全闪存储 #容器存储

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