体验Nginx Unit - AFF大佬 - 分享有价值的主机信息和服务器运维编程技术
当前位置: 主页 » 技术干货 » 体验Nginx Unit

体验Nginx Unit

      2017年10月28日   阅读 156 次     0 评论   Tags: ·

NGINX Unit 是一个动态的网络应用服务器,它的设计初衷就是可运行多种编程语言的。

通过 API 可以轻巧,多面化的动态配置 Unit。当工程师或操作者有需要时,可以轻松重构服务器已适配特殊的应用参数。

NGINX Unit 现在是 beta 版本。你现在虽然可以使用它,但建议仅用于测试环境,不建议用于生产环境。

只是编译了对应语言环境的链接库,UnixSocket 通信,Nginx Unit 维护 Web 服务进程以及统一的会话通信。

多说一点:Nginx Unit 就相当于nginx和php-fpm的混合版,能提供这两种软件的功能,既能对外提供WEB服务,又能代替PHP-FPM来解析PHP脚本,简而言之,服务器只装Nginx Unit即可。PHP还是要安装的,因为Nginx Unit在编译时依赖PHP来生成php7.unit.so链接库文件,只是在运行时使用这个链接库文件代替PHP-FPM进程而已,换句话说就是PHP只安装,并不需要运行PHP-FPM。

本项目的源代码及分发均使用 Apache 2.0 license。

直观感受是替换了 gunicorn/FastCGI/uWSGI (Python语言环境,其他语言类似),统一由 Nginx Unit 提供 Web Server 接入,应用只需要关心业务请求。

v2-1e3e9209e23f48a17845602b6c554c52_hd.png

体验nginx unit 链接:www.qead.com:8080

#nginx unit 安装  环境:centos7.3

git clone https://github.com/nginx/unit

cd unit

./configure

#编译支持PHP(这里需要注意一下,就是在编译安装PHP的时候必须加上:--enable-embed参数,不然unit编译会报SPAI php embedded not found错误 )。

[root@ImmenseGargantuan-VM unit]# ./configure php --config=/usr/local/php/bin/php-config --module=php7 --lib-path=/usr/local/php/lib/
configuring PHP module
checking for PHP ... found
 + PHP version: 7.1.11
 + PHP SAPI: [cli embed fpm phpdbg cgi]
checking for PHP embed SAPI ... found
 + PHP module: php7.unit.so

#make all 一下即可
[root@ImmenseGargantuan-VM unit]# make all

#启动unit
[root@ImmenseGargantuan-VM unit]# ./build/unitd --control unix:control.unit.sock
2017/10/29 00:46:41 [info] 1349#1349 unit started

#查看unit进程
[root@ImmenseGargantuan-VM unit]# ps -ef |grep unit
root      1350     1  0 00:46 ?        00:00:00 unit: main [./build/unitd --control unix:control.unit.sock]
nobody    1352  1350  0 00:46 ?        00:00:00 unit: controller
nobody    1354  1350  0 00:46 ?        00:00:00 unit: router
nobody    1413  1350  0 00:47 ?        00:00:00 unit: "blogs" application
root      1490 12189  0 00:48 pts/1    00:00:00 grep --color=auto unit

#unit的配置文件使用的是json格式,创建json格式配置文件
[root@ImmenseGargantuan-VM src]# cat unit.json 
{
     "listeners": {
         "*:8080": {
             "application": "unit-test"
         }
     },
     "applications": {
         "unit-test": {
             "type": "php",
              "workers": 20,
              "root": "/home/lee/unit",
          "user": "nobody",
              "group": "nobody",
              "index": "index.php"
         }
     }
}

#重载unit配置文件unit.json
[root@ImmenseGargantuan-VM unit]# curl -X PUT -d @/usr/local/src/unit.json --unix-socket  /usr/local/src/unit/control.unit.sock  127.0.0.1
{
    "success": "Reconfiguration done."
}

#通过IP:port方式进行访问,当然端口可以改为80,一样可以访问.

测试

QQ截图20171029012645.jpg

  • phpinfo();返回:Server API: unit

QQ截图20171029010036.jpg

  • 版权声明:本文版权归AFF大佬和原作者所有,未经许可不得转载。文章部分来源于网络仅代表作者看法,如有不同观点,欢迎进行交流。除非注明,文章均由 AFF大佬 整理发布,欢迎转载,转载请带版权。

  • 来源:AFF大佬 ( https://www.affdalao.com/ ),分享有价值的主机信息和服务器运维编程技术。
  • 链接:https://www.affdalao.com/122.html
  • 评论(0

    1. 还没有任何评论,你来说两句吧

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注