OpenNJet v4.0.1.0 已经发布,云原生应用引擎
OpenNJet v4.0.1.0 已经发布,云原生应用引擎
此版本更新内容包括:
功能优化
- 规范modules下各个模块的config 文件使用
- 动态增加VS时,如果是新增端口,可以在listen_option中设置配置(目前不支持quic)
- 优化event框架,提高消息处理速度
- 优化njetmq编译脚本
- proto_server模块修改为动态模块
Bug fix
- http/stream rr 算法backup 的tried 数组的越界问题
- http/stream hash,random 算法遍历peers时越界问题
- stream upstream zone 的内存分配失败时,service 字段的内存泄漏问题。
- Goaccess 模块移除 njt_dynlog_parser.c njt_dynlog_parser.h 两个文件
- libtcc1.a 跨平台拷贝路径问题
- 删除Dockerfile.ubuntu build_k8s.sh njet_sidecar.conf 多余文件
- telemetry webserver模块编译告警问题
- 解决不规范使用njt_cycle->log的问题
- 编译脚本部分单词拼写错误问题
- http cache 模块内存泄漏问题
- 解决njetmq未订阅的retain消息会导致内存泄露的问题
- 解决了循环添加动态location 多个然后再动态删除location时broker 进程 core的问题
- 健康检查配置前缀匹配导致认为已存在问题
- 健康检查部分代码分配使用了错误的结构长度问题
- 修复在Kunpeng 920 CPU上,rsync模块加载不成功的问题
- 解决代码在不同GCC下编译代码的兼容性问题
遗留已知问题
- tcp流量劫持基于iptables nat表prerouting添加规则,只针对外部访问(非本机ip)的数据做流量劫持
- HA/MA 配置同步关于命令式api 动态删除location消息同步存在问题
- 应用加速功能,删除location后本地缓存文件没有立马同步清理
- 配置沙箱进程,在NJet 可执行文件热升级时,无法在旧的沙箱进程退出后,再启动新的配置沙箱
- 动态VS,添加VS时 ,需要存在最少一个静态VS,如果没有静态VS存在,会报错返回
- 动态VS,添加VS时 ,对新增的监听端口,listen_option目前不支持quic选项,udp需要在addr_port选项中设置
- 动态VS,不支持zone、 location、ssl_ocsp、ssl_stapling、quic 指令
- 动态VS,不支持动态创建 新的error_log、access_log 文件
- 动态location,不支持zone 指令
- 动态SSL证书添加时必须有初始证书,通过动态VS添加的ssl server,如果未配置初始证书,通过动态ssl接口添加证书会添加失败
- 显示location的api,配置if和limit_except时,存在显示异常
发行版安装
centos发行版
安装
#生成njet.repo
sudo bash -c 'cat > /etc/yum.repos.d/njet.repo <<EOF
[OpenNJet]
name=OpenNJet
baseurl=https://njet.org.cn/download/linux/centos/\$releasever/\$basearch/
enabled=1
gpgcheck=1
gpgkey=https://njet.org.cn/download/linux/centos/RPM-GPG-KEY-OpenNJet
EOF'
#更新yum 缓存
yum clean all
yum makecache #类似于 apt update
yum install njet
yum install njet-otel
systemctl start njet
升级
注意:升级NJet4.0.1.0 版本及之后,升级时默认保留ctrl_kv.conf, goaccess.conf,njet.conf,njet_ctrl.conf这4个文件的原内容,但是如果升级到4.0.1.0 之前的需要先备份配置文件;html 任何版本都需要备份
sudo cp -r /usr/local/njet/conf /usr/local/njet/conf_backup
sudo cp -r /usr/local/njet/html /usr/local/njet/html_backup
sudo yum update njet #升级到最新版本
ubuntu发行版
安装
#添加gpg 文件
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://njet.org.cn/download/linux/ubuntu/gpg | sudo gpg --dearmor -
o /etc/apt/keyrings/njet.gpg
sudo chmod a+r /etc/apt/keyrings/njet.gpg
#添加APT 源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/njet.gpg] https://njet.org.cn/download/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/njet.list > /dev/null
sudo apt-get update
#安装及启动
sudo apt-get install njet
sudo systemctl start njet
升级
sudo cp -r /usr/local/njet/conf /usr/local/njet/conf_backup
sudo cp -r /usr/local/njet/html /usr/local/njet/html_backup
sudo apt-get update
sudo apt install --only-upgrade njet
二进制安装
rpm包
#安装
yum localinstall ./njet-4.0.1.0-1.ky10.x86_64.rpm
systemctl start njet
systemctl stop njet
#升级
sudo cp -r /usr/local/njet/conf /usr/local/njet/conf_backup
sudo cp -r /usr/local/njet/html /usr/local/njet/html_backup
yum remove njet
yum localinstall ./njet-4.0.1.0-1.ky10.x86_64.rpm
deb包
#安装
dpkg -i njet_4.0.1.0-1~ubuntu.18.04~bionic_amd64.deb
systemctl start njet
systemctl stop njet
#升级
sudo cp -r /usr/local/njet/conf /usr/local/njet/conf_backup
sudo cp -r /usr/local/njet/html /usr/local/njet/html_backup
dpkg -i njet_4.0.1.0-1~ubuntu.18.04~bionic_amd64.deb
docker方式运行
可使用如下命令启动运行: docker run -d --rm --privileged tmlake/njet:4.0.1.0 详细运行方法参考: https://njet.org.cn/cases/njet-docker/
下载列表安装包说明:
otel安装包为opentelemetry模块的安装包(如果需要该功能,从下载连接选择对应的安装包安装即可) captcha安装包是动态验证码模块的安装包(如果需要该功能,从下载连接选择对应的安装包安装即可) OpenNJet ubuntu deb安装包基于18.04版本编译,可在ubuntu20、ubuntu22上安装使用
-
njet: OpenNJet 安装包
- .deb 适用ubuntu系统
- el7.x86_64.rpm 适用centos系统
- .ky10.x86_64.rpm 适用基于x86_64的kylin麒麟系统
- .an8.loongarch64.rpm 适用龙芯系统
- .ky10.aarch64.rpm 适用基于Kunpeng-920的kylin麒麟系统
-
NJet-comm-modules: OpenNJet 社区模块安装包
- .deb 适用ubuntu系统
- el7.x86_64.rpm 适用centos系统
- .ky10.x86_64.rpm 适用基于x86_64的kylin麒麟系统
-
njet_python_wsgi: 支持python脚本及wsgi应用的模块 安装包
- .deb 适用ubuntu系统
- el7.x86_64.rpm 适用centos系统
- .ky10.x86_64.rpm 适用kylin麒麟系统
-
njet_otel: telemetry 模块(链路追踪)安装包
- .deb 适用ubuntu系统
- el7.x86_64.rpm 适用centos系统
- .ky10.x86_64.rpm 适用基于x86_64的kylin麒麟系统
-
njet_captcha: 频繁访问限制模块 安装包
- .deb 适用ubuntu系统
- el7.x86_64.rpm 适用centos系统
- .ky10.x86_64.rpm 适用kylin麒麟系统
-
portal_1.0.2_noarch.npk: Portal 应用管理模块(系统无关)
-
ssh_remote_mod.so: Portal 需要的Lua 额外模块(系统无关)
-
simulate-app_1.0.2.npk: NJet模拟环境应用(系统无关)
-
cert-manager: 支持ACME协议,实现自动证书管理
- cert-manager-arm64 适用arm64
- cert-manager 适用x86-64
- cert-manager-loongarch64 适用LoongArch