您的位置:  首页 > 技术杂谈 > 正文

讲讲动态 Location

2024-02-01 17:02 https://my.oschina.net/u/6606114/blog/11012755 OpenNJet 次阅读 条评论

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 长期存在的难于动态配置、管理功能影响业务等问题。 邮件组  官网

展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接