nginx-http-controller-module


授权协议: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
}