Sky16

nginx dynamic mange upstream

This project is maintained by wangfakang

nginx动态upstream管理方案:

目录

解决方案

1.使用我们组内在agentzh的ngx_lua_upstream_module基础上开发的lua_upstream_module.

2.使用agentzh开发饿balancer_by_lua指令,该指令在前面博客简单剖析过.

3.使用tengine的dyups模块.

综合上述问题可以择优选择,下面介绍新浪二次开发的lua_upstream_module.

项目背景

当nginx作为七层进行负载均衡的时候,由于扩容或者缩容的时候都得手工的在nginx的配置文件中upstream指令中去增加 或者删除机器server,然后进行reload使得nginx重新加载新的配置文件.那么这样就会越到几个问题:

目录

解决的问题

目录

使用方法

提供下列REST HTTP接口,形如"127.0.0.1:80/action=${opreation_name}&args=${operation_args}":

目录

响应字段含义

上述使用方法都是使用的rest http的方式,其http响应结果是json字符串形如:

修改操作:

curl "127.0.0.1:8045/admin/?action=add_server&upstream=bar&ip=127.0.0.1&port=82"

{
    "code": 200,
    "data": "add_server success"
}

查询操作:

curl "http://localhost:port/dyups_admin/?action=get_serves"

{
    "code": 200,
    "data": {
        "bar": [
            {
                "addr": "127.0.0.1:80",
                "fail_timeout": 10,
                "max_fails": 1,
                "weight": 1
            },
            {
                "addr": "127.0.0.1:81",
                "fail_timeout": 10,
                "max_fails": 1,
                "weight": 1
            }
        ]
    }
}

其中json的结构总共分为2个字段:

目录

使用注意

一.其中add_serveradd_peer两个操作的解析:

目录

Communite

在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流

Thx

Author