点赞
评论
收藏
分享
举报
nginx-http-controller-module
发表于2020-08-21 11:43

浏览 1.6k

文章标签

授权协议:
Apache License 2.0
原作者联系方式:
hongzhidao@gmail.com
功能说明:
Nginx 动态配置模块。可以通过restful json api对nginx进行配置

功能简介

dynamically config

configuration updates dynamically via a RESTful JSON API.

  • variables.
  • add_headers.
  • upstream zone.
  • blacklist and whitelist.
  • limit_conn, limit_req and limit_rate.
  • return location and text.

statistics

display stub and http status with json format.

指令:

ctrl_zone

syntax: ctrl_zone zone=NAME:SIZE

context: http

Creates a shared zone NAME with the SIZE for storing statistics data.

ctrl

syntax: ctrl on|off

default: ctrl off

context: http,server,location

ctrl_config

syntax: ctrl_config

context: location

ctrl_stats

syntax: ctrl_stats on|off

default: ctrl_stats off

context: http,server,location

ctrl_stats_display

syntax: ctrl_stats_display

context: location

配置:

nginx.conf

    events {}

    http {
        ctrl_zone  zone=stats:10M;

        server {
            listen  80;

            location / {
                ctrl        on;
                ctrl_stats  on;
            }
        }

        server {
            listen  8000;

            location /config {
                ctrl_config;
            }

            location /stats {
                ctrl_stats_display;
            }
        }
    }

update config

curl -X PUT -d@conf.json http://127.0.0.1:8000/config
{
    "upstreams": {
        "one": [
            {
                "address": "127.0.0.1:8081",
                "weight": 1
            },
            {
                "address": "127.0.0.1:8082",
                "weight": 1,
                "down": false
            }
        ],

        "two": [
            {
                "address": "127.0.0.1:8081",
                "weight": 3
            },
            {
                "address": "127.0.0.1:8082",
                "weight": 3
            }
        ]
    },

    "routes": [
        {
            "action": {
                "return": 200,
                "text": "hello"
            }
        }
    ]
}
curl http://127.0.0.1:80
hello

display all stats

curl http://127.0.0.1:8000/stats/
{
    "stub": {
        "active": 2,
        "accepted": 4,
        "handled": 4,
        "requests": 37,
        "reading": 0,
        "writing": 1,
        "waiting": 1
    },

    "status": {
        "n1xx": 0,
        "n2xx": 36,
        "n3xx": 0,
        "n4xx": 0,
        "n5xx": 0,
        "total": 36
    }
}

display stats stub

curl http://127.0.0.1:8000/stats/stub
{
    "active": 2,
    "accepted": 5,
    "handled": 5,
    "requests": 77,
    "reading": 0,
    "writing": 1,
    "waiting": 1
}

display stats status

curl http://127.0.0.1:8000/stats/status
{
    "n1xx": 0,
    "n2xx": 91,
    "n3xx": 0,
    "n4xx": 0,
    "n5xx": 0,
    "total": 91
}


已修改于2023-03-09 02:06
创作不易,留下一份鼓励
皮皮鲁

暂无个人介绍

关注



写下您的评论
发表评论
全部评论(0)

按点赞数排序

按时间排序

关于作者
皮皮鲁
这家伙很懒还未留下介绍~
85
文章
2
问答
42
粉丝
相关文章
概述 Nginx 从 1.9.0 开始加入了 stream 模块支持四层的代理,转发和负载均衡。但是,stream 模块的功能相对简单。对需要 ALG 处理的协议比如 FTP 的支持也远远不够。我试着去修改了 Nginx 的源代码,添加了alg模块。使之支持了 FTP主动模式和被动模式下的 ALG 功能。 Github 的源码地址为 : https://github.com/pei-jikui/nginx-alg。代码本身不困难,困难的是如何把代码模块化,有机地融入nginx原有的框架结构中,尽量少地修改已有的框架代码。而后者,需要对stream模块乃至nginx本身的框架和代码有一定的熟悉程度。图 1:FTP被动模式 数据连接 图2 :FTP主动模式 数据连接可能大家会说,Passive 模式不需要ALG 。准确
点赞 6
浏览 3.8k
使用配置方式:install./configure--add-module={module_dir}&&make&&makeinstallconfserver{ listen80; client_max_body_size100m; location/{ roothtml/upload; } #Uploadformshouldbesubmittedtothislocation location/upload{ #Passalteredrequestbodytothislocation upload_pass/example.php; #Storefilestothisdirectory #Thedirectoryishashed,subdirectories0123456789shouldexist
点赞 3
浏览 2.8k
使用方法:1.创建tableCREATETABLE oauth_access_token (id int(10)NOTNULLAUTO_INCREMENT,access_token varchar(255)DEFAULTNULL,expires_in int(10)NOTNULL,last_used_time int(10)NOTNULL,PRIMARYKEY(id),KEY ACCESS_TOKEN (access_token))ENGINE=InnoDBDEFAULTCHARSET=utf8;2.安装Oauth模块cd/work/nginx-1.8.0&&./configure--add-module=/work/nginx-http-oauth-module&&make3.添加配置请参照源码连接中的nginx.conf 4.使用Oauth模块a)创建访问tokenhttp://192.168.1.104/token?appid=
点赞 3
浏览 2.1k