• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

nginx-http-upstreams-control-module: Nginx 模块开发 --基于 Web 的 Upstream 监控 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

nginx-http-upstreams-control-module

开源软件地址:

https://gitee.com/oschina/nginx-http-upstreams-control-module

开源软件介绍:

基于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配置

关于作者


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap