55 Star 166 Fork 37

开源中国 / nginx-http-upstreams-control-module

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

基于web的 nginx upstream 监控和管理模块

本模块是为监视和控制nginx的upstream配置而写的nginx模块。
本模块实现的功能可以让你随时查看nginx的upstream配置还能够对upstream服务器上的请求进行实时计数,同时还能在不退出nginx服务,不编辑nginx配置文件的情况下在线更改upstream配置。

安装

  • 安装模块依赖项:lua5.2 和 lua-cjson

     lua5.2  
     lua-cjson  
  • 用下面的./configure配置项编译nginx(版本:nginx-1.9.8):

    --add-module=path/to/src/directory   
    --with-cc-opt="-I /usr/include/lua5.2"   
    --with-ld-opt="-l lua5.2 -L /usr/lib/i386-linux-gnu"    
  • 将 html 目录下的所有东西拷贝到 nginx 的 html 目录。

配置

将类似下面的内容添加到 nginx.conf:

location ~^/upstreams {    

        upstreams_admin         on;    

        auth_basic              "valid user";    

        auth_basic_user_file     /usr/local/nginx/conf/oschina_pw;

        ui_lua_file              /usr/local/nginx/html/ui.lua;

        timeout                  3;

}  

用法

通过浏览器访问 http://yourdomian/upstreams

配置指令

upstreams_admin

    开启或关闭upstream的监控功能,开启设置此值为on,关闭设置此值为off
    举例:upstreams_admin on

    example:upstreams_admin on

auth_basic

    请参考 nginx 对应指令说明  

auth_basic_user_file

    请参考 nginx 对应指令说明

ui_lua_file

    UI脚本文件路径(lua脚本文件)
    如果未设置,默认为path/to/nginx/html/ui.lua
    举例:ui_lua_file /usr/local/nginx/html/myui.lua

timeout

    更新upstream配置的超时时间(单位:秒)。如果未设置,默认为3秒
    举例:timeout 5

API

配置查询接口

    GET /upstreams   
    通过web客户访问   

UI回调接口

    (lua) write_html(data)    
    在nginx服务端回调   

Keepalive,iphash 更新接口

    (AJAX) POST /upstreams_update   
    请求参数:
    parameter:   
     {  
        method:'update',  
        backend:?,  
        ip_hash:?,  
        keepalive:?     
     }    
    响应格式:
    response:  
     {  
        code:?,  
        message:'?'   
     }  

    说明:  
    explaining:

    响应为json格式  

    method: 指明请求的类型,值固定为字符串“update”,表示更新upstream 后端的ip_hash配置和keepalive配置   

    backend: upstream 后端索引(从0开始),该索引与nginx配置文件中的后端从上到下顺序对应  

    ip_hash: 新的 ip_hash 值,只能取0或1  

    keepalive: 新的 keepalive 值,0或正整数,0表示关闭 keepalive,大于0表示 keepalive cache 数量(请参考aginx对应指令)  

    code:返回码  
    0 更新upstream配置成功     
    1 服务器处理超时    
    2 更新出错    
    3 服务器忙    
    4 请求参数错误    
    5 未知错误  

    message:与返回码对应的消息文本

upstream 服务器参数编辑接口

    (AJAX) POST /upstreams_edit   
    请求参数:   
    parameter:     
     {   
        method:'edit',  
        backend:?,  
        server:?,  
        weight:?,  
        backup:?,  
        max_fails:?,  
        fail_timeout:?  
     }    
    响应格式:  
    response:  
     {   
        code:?,   
        message:'?'  
     }   

    说明:  
    explaining:  

    响应为json格式  

    method:指明请求的类型,值固定为字符串“edit”,表示更新upstream 后端某个server的配置   

    backend:upstream后端索引(从0开始),该索引与nginx配置文件中的后端从上到下顺序对应  

    server:server索引(从0开始),该索引与nginx配置文件中的某一后端的服务器从上到下顺序对应  

    weight:请参考aginx对应指令说明  

    backup:表示是否将服务器设为备份,只能取0或1。0为不备份,1为备份  

    max_fails:请参考aginx对应指令说明  

    fail_timeout:请参考aginx对应指令说明  

    code:返回码  
    0 更新upstream配置成功     
    1 服务器处理超时    
    2 更新出错    
    3 服务器忙    
    4 请求参数错误    
    5 未知错误   

    message:与返回码对应的消息文本

upstream 服务器启停接口

    (AJAX) POST /upstreams_enable   
    请求参数:  
    parameter:    
     {   
       method:'enable',   
       backend:?,   
       server:?,   
       down:?,   
     }    
    响应格式:
    response:    
     {   
       code:?,   
       message:'?'   
     }   

    说明:  
    explaining:  

    响应为json格式  

    method:指明请求的类型,值固定为字符串“enable”,表示启动或停止upstream某个server   

    backend:upstream后端索引(从0开始),该索引与nginx配置文件中的后端从上到下顺序对应  

    server:server索引(从0开始),该索引与nginx配置文件中的某一后端的服务器从上到下顺序对应  

    down:表示是否停止服务器,只能取0或1。0为启动,1为停止  

    code:返回码  
    0 更新upstream配置成功     
    1 服务器处理超时    
    2 更新出错    
    3 服务器忙    
    4 请求参数错误    
    5 未知错误   

    message:与返回码对应的消息文本

自定制UI

你可以利用API定制属于自己的响应界面,方法如下:

  • 使用lua脚本编写html响应页面,由服务端在执行WEB查询接口响应时进行回调
  • 使用诸如javascript的客户脚本调用AJAX接口来更新upstream配置

关于作者

空文件

简介

Nginx 模块开发 --基于 Web 的 Upstream 监控和管理 展开 收起
C
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C
1
https://gitee.com/oschina/nginx-http-upstreams-control-module.git
git@gitee.com:oschina/nginx-http-upstreams-control-module.git
oschina
nginx-http-upstreams-control-module
nginx-http-upstreams-control-module
master

搜索帮助