OpenNJet v3.0.0 已经发布,这是一个云原生应用引擎。
此版本更新内容包括:
新功能
- 动态证书吊销列表更新
- http2mqtt 消息代理
- http2kafka 消息代理
- 数据消隐(access日志隐藏敏感信息)
- 集群动态桥接
- 集群间文件同步
- 大文件上传
- 集群配置跳转
- Ctrl Copilot 中,支持通过Lua 访问主进程定义的shared_dict
- API 网关功能 - 支持用户角色维护,OpenAPI导入,授权关系维护,应用部署,后端服务注册,主动健康检查配置,登录及授权校验
- 动态共享内存支持
- 动态配置proxy_pass
- 动态配置header
- 协议识别
- captcha
- SSL库更新到Tongsuo-8.4
功能优化
- 全量配置api,put 方法逻辑优化。
Bug fix
- 解决了动态配置limit后,返回值存在不可见字符的问题。
- 解决了动态新增VS时,添加未监听的端口会产生垃圾数据的问题。
- 解决了配置空的access_by_lua_block后,通过动态api查询时会导致卡死的问题。
- 解决了手动修改upstream 持久化文件可能会导致server数量异常的问题。
- 解决了upstream中,配置ip的server会被解析成域名和ip的问题。
- 解决了njet 向adc 注册模块reload 时报 open file error:/home/limin/conf/register.json 的问题
- 解决了Kv 固定字符串测试,执行put 操作时,get 查询到的auth_basic 值不正确的问题
- 解决了auth_basic:静态配置file 形式,启动njet 后,动态修改为autu use kv 变量前缀,访问server 时,输入正确用户名和密码后,访问失败的问题
- 动态VS,添加未listen的端口,返回添加失败,但是动态查询时,会在server中添加一个空的server
- 手动修改upstream持久化配置文件中,添加域名后,未添加resolve字段,可以启动,启动后再POST新server,配置文件中server数量异常
遗留已知问题
- tcp流量劫持基于iptables nat表prerouting添加规则,只针对外部访问(非本机ip)的数据做流量劫持
- HA/MA 配置同步关于命令式api 动态删除location消息同步存在问题
- 应用加速功能,删除location后本地缓存文件没有立马同步清理
- 配置沙箱进程,在NJet 可执行文件热升级时,无法在旧的沙箱进程退出后,再启动新的配置沙箱
- 动态VS,只能在存在的listen 上添加VS ,该功能不能创建listen
- 动态VS,不支持zone、 location、ssl_ocsp、ssl_stapling、quic 指令
- 动态VS,不支持动态创建 新的error_log、access_log 文件
- 动态location,不支持zone 指令
- 动态SSL证书添加时必须有初始证书,通过动态VS添加的ssl server,如果未配置初始证书,通过动态ssl接口添加证书会添加失败
- 在动态location上动态更新proxy_pass后,删除location,再次添加location,reload后,恢复为更新后的proxy_pass, 需要重新再次修改。
- 显示location的api,配置if和limit_except时,存在显示异常
rpm包安装
下面是centos系统使用步骤(其他系统需要从下载链接选择对应合适的安装包)
- 下载 njet-3.0.0-1.el7.x86_64.rpm安装包
- 上传文件到待安装主机
- sudo yum localinstall ./njet-3.0.0-1.el7.x86_64.rpm
- systemctl start njet
otel安装包为opentelemetry模块的安装包(如果需要该功能,从下载连接选择对应的安装包安装即可) captcha安装包是动态验证码模块的安装包(如果需要该功能,从下载连接选择对应的安装包安装即可) OpenNJet ubuntu deb安装包基于18.04版本编译,可在ubuntu20、ubuntu22上安装使用
已安装 njet 的 ubuntu , 升级njet 包: sudo systemctl stop njet sudo apt-get update sudo apt install --only-upgrade njet
docker方式运行
可使用如下命令启动运行: docker run -d --rm --privileged tmlake/njet:latest 详细运行方法参考: https://njet.org.cn/cases/njet-docker/
详情查看:https://gitee.com/njet-rd/njet/releases/v3.0.0