动态配置Map
1.功能描述
该动态模块可以对已经配置的Map映射规则进行更改和动态添加新的http map.
2.依赖模块
njet.conf
load_module /usr/lib/njet/modules/njt_http_dyn_map_module.so;
3.API
3.1 API 列表
查询接口:
GET http://IP+port/api/v1/config/http_dyn_map
修改接口:
PUT http://IP+port//api/v1/config/http_dyn_map
动态添加新的http map
-
api 新增type 字段,有效值:
del: 删除map。同时判断keyFrom,keyTo 是否相同。静态文件配置的不允许删除。
add:添加新的map。添加时判断是否存在,存在时更新。不存在则添加。存在的判断条件:keyTo是否存在。 其他值:走更新流程。 同时判断keyFrom,keyTo 是否相同。
3.2 调用样例
查询 map
curl -X 'GET' 'http://192.168.40.158:8088/api/v1/config/http_dyn_map' |jq
curl -k https://127.0.0.1:18080/?a=aa
curl -k https://127.0.0.1:18080/?a=bb
curl -k https://127.0.0.1:18080/?a=
修改map
添加:
curl -X 'PUT' 'http://127.0.0.1:8089/api/v1/config/http_dyn_map' -H 'accept: application/json' -H 'Content-Type: application/json' -d '{
"maps": [
{
"keyFrom": "$host",
"keyTo": "$zzz",
"type": "add",
"values": [
{
"valueFrom": "/www1",
"valueTo": "g12"
},
{
"valueFrom": "/www2",
"valueTo": "g2"
}
],
"isVolatile": true,
"hostnames": false
}
]
}'
返回:
[root@k8s-139 2njet]# curl -X 'GET' 'http://127.0.0.1:8089/api/v1/config/http_dyn_map' -H 'accept: application/json' | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 167 100 167 0 0 3119 0 --:--:-- --:--:-- --:--:-- 3150
{
"maps": [
{
"keyFrom": "$host",
"keyTo": "$zzz",
"values": [
{
"valueFrom": "/www1",
"valueTo": "g12"
},
{
"valueFrom": "/www2",
"valueTo": "g2"
}
],
"isVolatile": true,
"hostnames": false
}
]
}
删除:
curl -X 'PUT' 'http://127.0.0.1:8089/api/v1/config/http_dyn_map' -H 'accept: application/json' -H 'Content-Type: application/json' -d '{
"maps": [
{
"keyFrom": "$host",
"keyTo": "$zzz",
"type" : "del",
"values": [
{
"valueFrom": "/www1",
"valueTo": "g121111"
},
{
"valueFrom": "/www2",
"valueTo": "g21111"
}
],
"isVolatile": true,
"hostnames": false
}
]
}'
返回:
[root@k8s-139 2njet]# curl -X 'GET' 'http://127.0.0.1:8089/api/v1/config/http_dyn_map' -H 'accept: application/json' | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 11 100 11 0 0 202 0 --:--:-- --:--:-- --:--:-- 203
{
"maps": []
}
更新:
curl -X 'PUT' 'http://127.0.0.1:8089/api/v1/config/http_dyn_map' -H 'accept: application/json' -H 'Content-Type: application/json' -d '{
"maps": [
{
"keyFrom": "$host",
"keyTo": "$zzz",
"values": [
{
"valueFrom": "/www1",
"valueTo": "g121111"
},
{
"valueFrom": "/www2",
"valueTo": "g21111"
}
],
"isVolatile": true,
"hostnames": false
}
]
}'
返回:
[root@k8s-139 2njet]# curl -X 'GET' 'http://127.0.0.1:8089/api/v1/config/http_dyn_map' -H 'accept: application/json' | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 175 100 175 0 0 3266 0 --:--:-- --:--:-- --:--:-- 3301
{
"maps": [
{
"keyFrom": "$host",
"keyTo": "$zzz",
"values": [
{
"valueFrom": "/www1",
"valueTo": "g121111"
},
{
"valueFrom": "/www2",
"valueTo": "g21111"
}
],
"isVolatile": true,
"hostnames": false
}
]
}