很多人都用过强大的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
brew install nginx/unit/unit
然后安装其他对应的措辞包模块。
Docker
docker pull unit
可以自定义镜像的措辞和版本,方法如下
make build-<language name><language version> VERSION_<language name>=<language version>
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,内容为:
<?php echo "Hello, Chongchong!"; ?>
为了在Unit上运行该脚本,在安装好unit-php措辞模块后,先设置一个运用程序工具。该运用配置config.json:
{"applications":{"type": "php","root": "/www/helloworld/"}}
Unit可以用Web要求动态配置和让配置生效,可以通过一个PUT要求调用/config/applications API,为了安全起见,默认只许可在本地以Unix域套接字办法调用:
# curl -X PUT --data-binary @config.json --unix-socket \/var/run/control.unit.sock localhost/config/applications{"success": "Reconfiguration done."}
接下来,然后用命令行访问给运用的状态:
# curl -X PUT -d '{"127.0.0.1:8000": {"pass": "applications/helloworld"}}' \--unix-socket /path/to/control.unit.sock http://localhost/config/listeners{"success": "Reconfiguration done."}
这样Unit中该运用就配置好,可以进行访问
curl 127.0.0.1:8080Hello, Chongchong!
再调用API可以得到,该次访问的信息:
# curl --unix-socket /path/to/control.unit.sock http://localhost/config/
单元的输出应包含组织整洁的两个片段:
{"listeners": {"127.0.0.1:8080": {"pass": "applications/helloworld"}},"applications": {"helloworld": {"type": "php","root": "/www/helloworld/"}}}
总结
NGINX Unit是一个轻量级、多功能的开源做事器,可以供应一个优雅的,可以随掉随用、动态配置、动态发布和更新的多措辞支持的运用做事器,在于微做事和多措辞Web运用共存的本日,NGINX Unit无疑是一个很好的办理方案,当然更多功能探索,大家如果须要可以回答磋商,后续可以供应。