Nginx Unit详解系列(一)
Nginx Unit详解系列(一)
- 2018.4.17
- 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。
一、什么是Nginx Unit
Nginx Unit是一个开源的、以Nginx为基础的、支持多语言的动态Web应用服务器,它支持Python、PHP、Perl、Ruby和Go等多语言应用程序,可以在不中断服务的情况下完成部署配置更改,以多种语言运行代码。
Nginx Unit是一个新的开源项目,由Igor Sysoev发起,他说:“我想着手开发一款应用服务器,它能够远程动态配置,并且能够从一种语言的应用程序版本动态切换到另一种语言的应用程序。”Igor认为动态配置和交换无疑是主要问题,人们希望在不中断客户端处理的情况下重新配置服务器。
Nginx Unit使用REST API进行动态配置,它没有静态配置文件。所有配置更改直接在内存中发生,配置更改无需重新加载或服务中断即可生效。
Nginx Unit刚刚发布了1.0版,它可以在同一台服务器上支持Go、Perl、PHP、Python和Ruby,而且还支持多语言版本,比如用户可以在同一台服务器上同时运行PHP 5和PHP 7编写的应用程序。未来的Nginx Unit版本计划支持包括Java在内的其他语言。
NGINX Unit可以根据需要启动和扩展应用程序的进程,并在自己的安全沙箱中执行每一个应用程序实例。
Nginx Unit通过一个单独的“路由器”进程管理和路由所有传入网络通信到应用程序,因此它可以在不中断服务的情况下快速实施配置的更改。
Nginx Unit的配置采用了JSON格式,因此用户可以手动编辑,而且非常适合脚本编写。
Nginx Unit运行多种语言运行时的能力是基于它内部的路由器进程之间的隔离,路由器进程可终止传入的HTTP请求,以及应用程序进程的分组,它实现了应用程序运行时并执行应用程序代码。
路由器进程是持久的,它从不重新启动,意味着配置更新可以无缝地实现,而不会中断服务。每一个应用程序进程都部署在自己的沙箱中(在开发中支持Linux控制组 [cgroups]),以便Nginx Unit为用户代码提供安全的隔离。
二、Nginx Unit的下一步
Nginx Unit工程团队在发布1.0之后的下一个里程碑的内容主要是HTTP成熟度、静态内容服务和其他语言的支持。
“我们计划在单元中添加SSL和HTTP/2功能,”Igor说,“另外,我们计划在配置中支持路由。目前,我们有一个监听端口直接映射到一个应用程序,我们计划使用URI和主机名等添加路由。另外,我们希望为Unit增加更多的语言支持,我们正在完成Ruby实现,接下来我们将考虑Node.js和Java,Java将以Tomcat兼容的方式添加。”
Nginx Unit的最终目标是为分布式多语言应用程序创建一个开源平台,该应用程序可以安全、可靠地运行应用程序代码并以最佳的性能运行。该平台将自行管理,具有自动调节功能以满足资源约束条件下的SLA,以及服务发现和内部负载平衡,以便轻松创建服务网格。
三、Nginx Unit和Nginx应用平台
Nginx Unit平台通常会提供Nginx开源的前端层或Nginx Plus反向代理,以提供入口控制,边缘负载均衡和安全性。然后可以使用Nginx控制器对联合平台(Nginx Unit和Nginx或Nginx Plus)进行全面管理,以监控、配置和控制整个平台。
这三个组件:Nginx Plus,Nginx Unit和Nginx Controller组成了Nginx应用平台。Nginx应用平台是一个产品套件,提供负载均衡、缓存、API管理、WAF和应用服务,并具有丰富的管理和控制面板,可简化单片应用、微服务和过渡应用的操作任务。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
蛇皮的Python面试题目
1.小易有一些彩色的砖块。每种颜色由一个大写字母表示。各个颜色砖块看起来都完全一样。现在有一个给定的字符串s,s中每个字符代表小易的某个砖块的颜色。小易想把他所有的砖块排成一行。如果最多存在一对不同颜色的相邻砖块,那么这行砖块就很漂亮的。请你帮助小易计算有多少种方式将他所有砖块排成漂亮的一行。(如果两种方式所对应的砖块颜色序列是相同的,那么认为这两种方式是一样的。) 例如: s = “ABAB”,那么小易有六种排列的结果: “AABB”,”ABAB”,”ABBA”,”BAAB”,”BABA”,”BBAA” 其中只有”AABB”和”BBAA”满足最多只有一对不同颜色的相邻砖块。 . 输入描述: 1.输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s中的每一个字符都为一个大写字母(A到Z)。 输出描述: 2.输出一个整数,表示小易可以有多少种方式。 输入例子:ABAB 输出例子:2 代码: a = raw_input("") new = [] for i in range(len(a)): new.append(a[i]) f len(set(new))...
- 下一篇
Tensorflow快餐教程(2) - 标量运算
Tensorflow的Tensor意为张量。一般如果是0维的数组,就是一个数据,我们称之为标是Scalar;1维的数组,称为向量Vector;2维的数组,称为矩阵Matrics;3维及以上的数组,称为张量Tensor。在机器学习中,用途最广泛的是向量和矩阵的运算。这也是我们学习中的第一个难关。不过,这一节我们先打标量的基础。 上节我们学过,Tensorflow的运行需要一个Session对象。下面代码中所用的sess都是通过 sess = tf.Session() 获取的Session对象,以下就都省略不写了。 标量Scalar 标量是指只有一个数字的结构。我们尝试将一个整数赋给一个Tensorflow的常量,看看是什么效果: >>> a10 = 1 >>> b10 = tf.constant(a10) &
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Linux系统CentOS6、CentOS7手动修改IP地址
- Hadoop3单机部署,实现最简伪集群
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境