NGINX 向云原生演进,All in OpenNJet
功能说明
本系统支持对location模块的动态添加、删除,可以对locaiton进行便捷的配置和所需指令功能的添加使用。
该模块支持ACL控制,
配置说明
请参考标准配置文件章节配置,全量配置即可配置上此功能,但请注意一定要包含以下指令和块:
njet.conf 配置文件中务必有此模块
load_module modules/njt_http_location_module.so;
ctrl.conf配置文件中务必包含这些模块
load_module modules/njt_http_sendmsg_module.so;
load_module modules/njt_http_location_api_module.so;
http {
server {
listen 8081;
location /dyn_location {
dyn_location_api;
}
}
}
动态location,配置ACL控制
load_module modules/njt_http_sendmsg_module.so;
load_module modules/njt_http_location_api_module.so;
server {
listen 8081;
location /dyn_location {
dyn_location_api;
limit_except GET {
auth_basic "NGINX plus API";
auth_basic_user_file /etc/njet/htpasswd;
}
}
}
API 说明
动态location增加说明:
配置项
|
必填 |
配置说明
|
type |
是 |
“add” 添加location |
addr_port |
是 |
添加的主机的,port 端口。 例如:”192.168.40.203:8000″, 或 “0.0.0.0:8000” |
server_name |
是 |
主机的server_name, 例如:”cluster.tmlake.com” |
locations |
是 |
List 对象列表。 对象字段: location_rule,//可以为空。 location_name, //不能为空。 location_body, //location_body 或 proxy_pass 必须有一个不为空。结尾不要带; proxy_pass //location_body 或 proxy_pass 必须有一个不为空。结尾不要带; //proxy_pass 后面只能跟配置文件预定义的upstream 名字。 其他的不支持
|
说明:
location_body 或 proxy_pass 字段均可以为空,结尾不要带;
proxy_pass 现在支持http,https,ip地址,unix socket,域名,变量等。(例如:http://backend1、https://backend1、http://127.0.0.1:443、http://$upstream_name、http://unix:/var/lib/njet/njet-502-server.sock等)
动态location删除说明:
配置项
|
必填 |
配置说明
|
type |
是 |
“del” 删除location |
addr_port |
是 |
添加的主机的,port 端口。 例如:”192.168.40.203:8000″, 或 “0.0.0.0:8000” |
server_name |
是 |
主机的server_name, 例如:”cluster.tmlake.com” |
location_rule |
否 |
Location 的表达式, 例如:“=” 或 其他的正则式 |
location_name |
是 |
location的名字,也就是表达式后面的。 例如: “/” 或 “/test” |
说明:
添加的嵌套location, 删除时只能通过根location一并删除,不支持直接删除子location。
调用样例可戳文档查看
OpenNJet 最早是基于 NGINX1.19 基础 fork 并独立演进,具有高性能、稳定、易扩展的特点,同时也解决了 NGINX 长期存在的难于动态配置、管理功能影响业务等问题。 邮件组 官网