首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

微应用时代的Web通用应用服务器NGINX Unit

很多人都用过强大的LNMP栈体系跑应用,更多人则用Nginx做一个代理,作为一个Web应用的安全、可以抵抗大流量应用网关和集群入口。LNMP栈可以支持动态应用(PHP和Mysql),Nginx本身也可以用lua写一些动态应用。但是现在应用脚本越来越多样化,应用微服务化,不光是PHP、Python,Java、Ruby,Perl等各种应用可能都会有,虽然有Docker这样的工具,但是配置也比较繁琐,而且对于灵活变化配置Nginx需要每次reload加载不是一个很好的处理方式。为了解决这种问题Nginx团队推出了一个神器——NGINX Unit。今天虫虫就给大家推荐这个工具。

概述

NGINX Unit是一个轻量级、多功能的开源服务器,两个主要功能:

提供静态内容Web服务,

支持七种语言(Node.js,Java,Perl,PHP,Python,Python3,Ruby,WebAssembly)行应用程序代码。

Unit将现代应用程序堆栈的多个层压缩为一个强大的、注重性能、低延迟和可扩展性的一致解决方案。旨在提供一个人Web应用的快捷、通用构建方式。

为了灵活配置和程序化状态控制,Unit还提供原生RESTful JSON API支持动态、零中断更新和灵活配置。

Unit提供开箱即用的能力,可以可靠地扩展到生产级工作负载。通过复杂的异步多线程架构来实现这一点包括多个流程,以确保安全性和稳健性,可以支持当今最先进的云平台。

快速上手

MacOS

然后安装其他对应的语言包模块。

Docker

可以自定义镜像的语言和版本,方法如下

linux安装

unix官方支持最广泛的各个发行版的二进制安装包,可使用对应的包管理器中添加官方包地址即可。

比如对于RedHa系的Amazon Linux、Fedora、RedHat

注意,安装后默认控制API调用socket接口为/var/run/unit/control.sock

日志文件为/var/run/unit/unit.log

应用启动用户和组为unit

Debian系

源码安装

用git下载源码,安装各种依赖项目然后安装(较复杂,不建议自己做)。

Hello Chongchong

Unit可以支持多中应用程序。我们简单以一个PHP Hello例子为例进行予以展示,其他语言和脚本基本同理。我们将脚本文件保存在

保存在/www/helloworld/index.php,内容为:

为了在Unit上运行该脚本,在安装好unit-php语言模块后,先设置一个应用程序对象。该应用配置config.json:

Unit可以用Web请求动态配置和让配置生效,可以通过一个PUT请求调用/config/applications API,为了安全起见,默认只允许在本地以Unix域套接字方式调用:

接下来,然后用命令行访问给应用的状态:

这样Unit中该应用就配置好,可以进行访问

再调用API可以获得,该次访问的信息:

单元的输出应包含组织整齐的两个片段:

总结

NGINX Unit是一个轻量级、多功能的开源服务器,可以提供一个优雅的,可以随掉随用、动态配置、动态发布和更新的多语言支持的应用服务器,在于微服务和多语言Web应用共存的今天,NGINX Unit无疑是一个很好的解决方案,当然更多功能探索,大家如果需要可以回复探讨,后续可以提供。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OOWqDJs7rxLKKgiC4NHDjJGQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券