Nginx Unit详解系列(一)

标签: Nginx Unit Nginx+ Nginx
37人阅读 评论(0) 收藏 举报
分类:

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和应用服务,并具有丰富的管理和控制面板,可简化单片应用、微服务和过渡应用的操作任务。

查看评论

nginx启动失败Failed to reload nginx.service: Unit not found.

1、在/etc/init.d/目录下编写脚本,名为nginx #!/bin/sh  #  # nginx - this script starts and stops the nginx dae...
  • wangjinbao5566
  • wangjinbao5566
  • 2017-06-08 22:39:18
  • 7949

Web服务器之Nginx详解(操作部分)

http://freeloda.blog.51cto.com/2033581/1285722 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则...
  • xiaxiaorui2003
  • xiaxiaorui2003
  • 2016-07-22 13:49:01
  • 2477

JDBC详解系列(二)之加载驱动

在JDBC详解系列(一)之流程中,我将数据库的连接分解成了六个步骤。 本文将第一步的加载数据库驱动讲解一下。加载驱动就是一句代码的事情...
  • weixin_37139197
  • weixin_37139197
  • 2017-12-21 00:27:04
  • 39

nginx1.9 在centos7.2下报Failed to restart nginx.service: Unit nginx.service failed to load: No 。。错误

错误描述: [root@www php-fpm.d]# service nginx restart Redirecting to /bin/systemctl restart  nginx.s...
  • u012984663
  • u012984663
  • 2016-08-18 14:29:56
  • 8206

Nginx高性能Web服务器详解(完整版)pdf下载

  • 2016年12月22日 06:37
  • 67.83MB
  • 下载

JDBC详解系列(一)之流程

JDBC详解系列(一)之流程  本文主要介绍了JDBC操作数据库的基本流程,包括对数据库进行CRUD,批量处理...
  • weixin_37139197
  • weixin_37139197
  • 2017-12-19 22:59:36
  • 216

问题解决笔记 -- 在 Ubuntu 16 上使用 Nginx 部署 Flask 应用

英文原文:Serving Flask With Nginx 文章的翻译链接 在 Ubuntu 上使用 Nginx 部署 Flask 应用 为了搭载一个restful服务框架的服务器后端,...
  • qq_17121501
  • qq_17121501
  • 2017-04-27 00:46:09
  • 1131

Nginx高性能Web服务器详解

  • 2018年03月06日 17:21
  • 178.31MB
  • 下载

罗斯基白话:TensorFlow+实战系列(二)从零构建传统神经网络

白话TensorFlow+实战系列(二) 从头构建传统神经网络   这次主要用TensorFlow从头构建一个传统神经网络作为案例,并总结需要注意的地方   创建一个神经网络主要有一下4个步骤: ...
  • roseki
  • roseki
  • 2017-04-14 14:05:57
  • 3341

添加nginx为系统服务(service nginx start/stop/restart)

1、在/etc/init.d/目录下编写脚本,名为nginx #!/bin/sh  #  # nginx - this script starts and stops the nginx dae...
  • awj3584
  • awj3584
  • 2014-07-22 10:20:48
  • 39013
    个人资料
    持之以恒
    等级:
    访问量: 613万+
    积分: 5万+
    排名: 63
    一名路过的黑客

    大家好,我是黑客,专门盗账号的。现在这个人的帐号被我盗了,但看这个人平时的博客空间,一直过着艰苦努力、持之以恒的技术研究生活,勤奋刻苦,积极分享,无私奉献,我被深深的感动了,这是一个纯粹的人,人品这样的高尚,希望大家看到我这条消息后,可以私聊他,多鼓励他,不缺钱的就多给他一些经济上的资助,让他再接再厉!就这样吧,我下线了,眼框湿湿的难受。

    文章存档