参考文档: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设置等等...