生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

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

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

关注

评论

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

开放原子开源大赛 | 玲珑赛题正式启动,诚邀报名!

开放原子开源基金会

开源 大赛 开源大赛

iWall:Mac上可以将任意视频设置为壁纸的软件

展初云

Mac Mac软件 Mac壁纸软件

华为云API Explorer重磅推出API编排,开发者0代码高效构建工作流

轶天下事

Mac电脑专业矢量绘图 Amadine最新激活版

胖墩儿不胖y

Mac软件 矢量图设计工具 矢量图设计 设计矢量图

4大焕新,华为云CCE带你感受容器化上云体验

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟

百度智能云千帆大模型平台 2.0 产品技术解析

百度Geek说

大数据 百度 AI 企业号10月PK榜

Topaz Video AI for mac(视频增强修复工具) 3.5.3激活密钥版

mac

苹果mac 视频增强修复软件 Windows软件 Topaz Video AI

飞书深诺前端 SPA 敏捷部署方案演进

飞书深诺技术团队

架构 前端 CI/CD SPA 单页面应用

华为云API自然语言处理的魅力—AI情感分析、文本分析

轶天下事

什么档次,这个软件居然敢和墨墨不背扇贝百词斩等一众大佬比肩

一点点小创意

微信小程序 学习 产品设计 创新 大学英语四六级

MBBF展示的奇迹绿洲:5G的过去、此刻与未来

脑极体

华为 通信

Dynamic Wallpaper:Mac的动态壁纸引擎

展初云

Mac Mac软件 mac动态壁纸

【开源三方库】Fuse.js:强大、轻巧、零依赖的模糊搜索库

OpenHarmony开发者

OpenHarmony

EVE-NG安装来啦

小魏写代码

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

梦想橡皮擦

Web3 新手攻略:9 个不可或缺的 APP 助力你踏入加密领域

威廉META

蓝光多媒体播放器 Blu-ray Player Pro最新激活中文版

mac大玩家j

Mac软件 视频播放器 蓝光播放器

修图不用Ps,Pixelmator Pro刚刚好

展初云

Mac Mac软件 修图软件

Web3 新手攻略:9个不可或缺的APP助力你踏入加密领域

鳄鱼视界

蓝易云:动态bgp和静态bgp相比有哪些优势?

百度搜索:蓝易云

云计算 Linux 运维 BGP 云服务器

蓝易云:如何在 Linux 环境下安装使用 pycharm?

百度搜索:蓝易云

云计算 Linux pycharm 云服务器 ECS

前端 | 如何使用 css 实现居中效果

Appleex

CSS 前端

spss下载以及安装详细教程

晴雯哥

华为云API人脸识别服务FRS的感知力—偷偷藏不住的你

轶天下事

华为云ROMA Connect亮相Gartner®全球应用创新及商业解决方案峰会

轶天下事

软件测试/测试开发丨校招推荐-中控技术股份有限公司岗位开放

测试人

程序员 软件测试 招聘 内推

HarmonyOS远端状态订阅开发实例

HarmonyOS开发者

Cloud Bursting解决方案,Serverless容器降本增效极致体验

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟

杭州亚运会实现核心系统100%上云、云上转播7200+小时

阿里云视频云

云计算 亚运会

Python 集合(Sets)1

小万哥

Python 程序员 软件 后端 开发

华为云ROMA Connect行业生态联盟成立,携手共建行业软件合作新生态

轶天下事

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