zoukankan      html  css  js  c++  java
  • 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设置等等...

    欢迎转发! 请保留源地址: https://www.cnblogs.com/NoneID
  • 相关阅读:
    JS中null与undefined的区别
    <div> <p> <span>的用法和区别
    <img>的title和Alt有什么区别?
    null undefined NaN
    JavaScript中判断为整数的多种方式
    将博客搬至CSDN
    flex
    webpack插件url-loader使用规范
    Cordova 项目 加载不出XML文件
    pandas读取xlsx
  • 原文地址:https://www.cnblogs.com/NoneID/p/9735080.html
Copyright © 2011-2022 走看看