2018-12-26 14:20:33 星期三php
綜述: nginx unit php 的關係: nginx
nginx -> 轉發請求到 8300端口 -> unit 轉發 8300 收到的請求 -> PHPjson
首先, 配置unit, 設置轉發哪一個端口的請求, 轉發給哪一個PHP文件, PHP的配置文件地址, 啓動的進程數等centos
而後, 配置nginx, 將匹配到的域名/ip/端口, 經過 proxy 相關指令轉發到 unit監聽並轉發的端口app
而unit自己也還會監聽某一個端口或sock文件, 用來接收配置信息的更改請求curl
具體操做socket
第一步: 安裝, 我用的是centos 6 官網 http://unit.nginx.org/installation/#centos-packagesurl
第二步: 啓動 若是是按照官網, 經過yum 進行安裝的, 啓動方法就是spa
/usr/sbin/unitd --control 127.0.0.1:8224
2018/12/26 14:26:11 [info] 13924#13924 unit started
此時unix
ps -ef | grep unit root 13777 1 0 14:03 ? 00:00:00 unit: main v1.7 [/usr/sbin/unitd --control 127.0.0.1:8224] nobody 13779 13777 0 14:03 ? 00:00:00 unit: controller nobody 13896 13777 0 14:14 ? 00:00:00 unit: router
第三步: 建立配置文件 , 複製並修改官網的json, 建立json文件: /etc/unit/test.json
{ "listeners": { "*:8300": { "application": "test" } }, "applications": { "test": { "type": "php", "processes": 2, "root": "/www/unit/test", "index": "index.php" } } }
第四步: 用curl命令將這個json文件發送給unit, 建立對象 (注意官網是經過 unix-socket 進程間通訊的方法去發送json配置文件給unit的守護進程的, 在這裏直接發送到unit監聽的端口)
curl -X PUT -d @/etc/unit/test.json http://localhost:8224/config
此時多了兩個application進程:
ps -ef | grep unit root 13925 1 0 14:26 ? 00:00:00 unit: main v1.7 [/usr/sbin/unitd] nobody 13927 13925 0 14:26 ? 00:00:00 unit: controller nobody 13928 13925 0 14:26 ? 00:00:00 unit: router root 13929 13925 0 14:26 ? 00:00:00 unit: "test" application root 13930 13925 0 14:26 ? 00:00:00 unit: "test" application
第五步: 查看已發送的配置
curl http://127.0.0.1:8224
第六步: 更改json配置文件, 進程數設置爲5, 並從新發送配置, 再查看進程數: application進程變爲5個
ps -ef | grep unit root 13983 1 0 14:48 ? 00:00:00 unit: main v1.7 [/usr/sbin/unitd --control 127.0.0.1:8224] nobody 13985 13983 0 14:48 ? 00:00:00 unit: controller nobody 13986 13983 0 14:48 ? 00:00:00 unit: router root 13993 13983 0 14:49 ? 00:00:00 unit: "test" application root 13994 13983 0 14:49 ? 00:00:00 unit: "test" application root 13995 13983 0 14:49 ? 00:00:00 unit: "test" application root 13996 13983 0 14:49 ? 00:00:00 unit: "test" application root 13997 13983 0 14:49 ? 00:00:00 unit: "test" application
未完待續.....