nginx unit 的使用

参考文档:http://unit.nginx.org/configuration/#

 

安装

可以参考这两篇博客:

https://www.cnblogs.com/wang-li/p/9694391.html

https://www.cnblogs.com/wang-li/p/9684040.html

 

启动unit

$ sudo /usr/local/unit/sbin/unitd --control 127.0.0.1:8400

启动的方式有两种,一种是control.unit.sock方式,还有一种就是如上方式了

 

加载unit配置

先来看看json文件吧,我们需要加载这个文件

$ cat /usr/local/unit/script/www.json 
{
    "listeners": {
        "*:8300": {
            "application": "blogs"
        },
        "*:8310": {
            "application": "phpsite"
        }
    },

    "applications": {
        "blogs": {
            "type": "php7",
            "processes": 2,
            "root": "/usr/local/nginx/php",
            "index": "index.php",
    
        "user": "php",
        "group": "php",
    
        "options": {
            "file": "/usr/local/php7/lib/php.ini"
            }
        },
        "phpsite": {
            "type": "php7",
            "processes": 20,
            "root": "/usr/local/nginx/php",
            "index": "info.php",
    
        "user": "php",
        "group": "php",
    
        "options": {
            "file": "/usr/local/php7/lib/php.ini"
            }
        }
    
    }  
}
$ 

利用curl加载josn文件至unit

$ sudo curl -X PUT -d@/usr/local/unit/script/www.json '127.0.0.1:8400/config'
{
    "success": "Reconfiguration done."
}
$

如果返回"success": "Reconfiguration done.",则就加载完毕
可以查看一下端口

$ netstat -tulnp | grep 8[1-9].0
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:8300            0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:8400          0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:8310            0.0.0.0:*               LISTEN      -                   
$

其中,8400是我们启动unit程序的时候,作为的控制unit API的端口,而8300,8310是在json中编写完毕的,用于监听php的

显示unit配置

显示完整配置

$ curl http://127.0.0.1:8400
{
    "config": {
        "listeners": {
            "*:8300": {
                "application": "blogs"
            },

            "*:8310": {
                "application": "phpsite"
            }
        },

        "applications": {
            "blogs": {
                "type": "php7",
                "processes": 2,
                "root": "/usr/local/nginx/php",
                "index": "index.php",
                "user": "php",
                "group": "php",
                "options": {
                    "file": "/usr/local/php7/lib/php.ini"
                }
            },

            "phpsite": {
                "type": "php7",
                "processes": 20,
                "root": "/usr/local/nginx/php",
                "index": "info.php",
                "user": "php",
                "group": "php",
                "options": {
                    "file": "/usr/local/php7/lib/php.ini"
                }
            }
        }
    }
}
$ 

显示部分配置

$ curl 'http://127.0.0.1:8400/config/applications/blogs'
{
    "type": "php7",
    "processes": 2,
    "root": "/usr/local/nginx/php",
    "index": "index.php",
    "user": "php",
    "group": "php",
    "options": {
        "file": "/usr/local/php7/lib/php.ini"
    }
}
$ 

如果现在去访问8300 和 8310端口的话,会得到两种信息,8300会返回index.php的内容,而8310会返回info.php的内容

 

利用curl修改unit配置

修改listeners的application

$ curl -X PUT -d '"blogs"' '127.0.0.1:8400/config/listeners/*:8310/application'
{
    "success": "Reconfiguration done."
}
$

 

查看修改后的信息

$ curl '127.0.0.1:8400/config/listeners'
{
    "*:8300": {
        "application": "blogs"
    },

    "*:8310": {
        "application": "blogs"
    }
}
$ 

 可见,8310的application已经由最初的phpsite修改为现在的blogs

 

修改phpsite的首页文件为index.php

$ curl -X PUT -d '"index.php"' '127.0.0.1:8400/config/applications/phpsite/index'
{
    "success": "Reconfiguration done."
}
$ 

查看修改后的信息

$ curl '127.0.0.1:8400/config/applications'
{
    "blogs": {
        "type": "php7",
        "processes": 2,
        "root": "/usr/local/nginx/php",
        "index": "index.php",
        "user": "php",
        "group": "php",
        "options": {
            "file": "/usr/local/php7/lib/php.ini"
        }
    },

    "phpsite": {
        "type": "php7",
        "processes": 20,
        "root": "/usr/local/nginx/php",
        "index": "index.php",
        "user": "php",
        "group": "php",
        "options": {
            "file": "/usr/local/php7/lib/php.ini"
        }
    }
}
$ 

可见,phpsite的index已经由当初的info.php变为现在的index.php了

不过,这个配置重新加载json文件后,又会按照文件内容进行改变了,所以,如果想下次加载文件后依然保持这个值的话,需要修改json文件才行

利用curl删除unit对象

现在想删除unit phpsited对象

$ curl -X DELETE '127.0.0.1:8400/config/listeners/*:8310'
{
    "success": "Reconfiguration done."
}
$ curl -X DELETE '127.0.0.1:8400/config/applications/phpsite'
{
    "success": "Reconfiguration done."
}
$ 

查看现在的unit配置

$ curl '127.0.0.1:8400'
{
    "config": {
        "listeners": {
            "*:8300": {
                "application": "blogs"
            }
        },

        "applications": {
            "blogs": {
                "type": "php7",
                "processes": 2,
                "root": "/usr/local/nginx/php",
                "index": "index.php",
                "user": "php",
                "group": "php",
                "options": {
                    "file": "/usr/local/php7/lib/php.ini"
                }
            }
        }
    }
}
$ 

现在来看的话,配置就只有blogs配置了 

 其实后面还有一大堆的东西,比如ssl,全局设置等等,还包括,go和python设置等等...

 

posted @ 2018-10-01 17:26  pdudos  阅读(418)  评论(0编辑  收藏  举报