常见问题
1.访问不存在的接口,会报500的错误。
2.njet_ctrl.conf中自定义了接口location,curl命令可以正常使用,但是doc gui无法使用。
njt_ctrl标准配置文件:需要包含如下location:
/api 提供api维护
/metrics 指标输出接口
/doc/swagger openapi接口
3.安装后如何启动
使用 rpm 或 deb 二进制安装后,会在 /usr/lib/syste md/system/ 目录下添加 service文件。
使用 sudo systemctl start njet 启动服务。
使用 sudo systemctl stop njet 停止服务。
4.安装后如何解决和其他程序的端口冲突问题?
OpenNJet 安装后, /usr/local/njet/conf/ 目录下的初始配置文件, 监听 8080 和 8081 端口。
如果主机上有其它应用以及使用了对应端口, 可以修改配置文件路径下的njet.conf 及njet_ctrl.conf 文件。
5.在容器中如果出现使用ip6tables指令时出现报错
sudo ip6tables -t nat -S
ip6tables v1.6.1: can't initialize ip6tables table `nat': Table does not exist (do you need to insmod?)
请在宿主机执行指令
sudo modprobe ip6table_filter
6.测试OpenNJet功能时,报 “msg”: “not register api module”
A:报not register api module 是因为配置中没有加载动态库,请参考OpenNJet 使用手册v3.3.1中的具体功能模块的配置说明加载动态库,重新启动NJet
7.使用upstream api查询不到upstream,返回404
A:使用upstream api时,必须先创建好一组upstream,并配置zone,才可以对upstream中成员进行增删改查等操作。
8.启动NJet 时,报 njt_helper_ctrl_module 版本不匹配错误 (0 != 1023001)
详细报错信息:启动NJet 时,报 module “/usr/local/njet/modules/njt_helper_ctrl_module.so”">njt_helper_ctrl_module.so"; version 0 instead of 1023001 in /usr/local/njet/conf/njet_ctrl.conf:15 .
A:是因为copilot配置在njet_ctrl.conf 里的原因,应该配置在njet.conf 里, 同样copilot包括copilot:ctrl,copilot:broker,copilot:ha,所以这3个都要配置在njet.conf 配置文件里, 关于copilot的详细说明请参考OpenNJet 使用手册v2.1.0 的3.2 章节
9.新增域名、location有对应的键值用于定位吗?
9.1动态新增域名,需要使用动态VS 的api 接口(具体参考手册), 使用ip,port 来定位。
主要参数需要:操作类型type, ip+port,以及 新增加的server_name,server_body 字段非必须。
例如:
{ “type”: “add”, “addr_port”: “0.0.0.0:90”, “server_name”: “server-901”, “server_body”: “return 200 server-901;” }
9.2新增动态location,需要使用动态location 的api 接口(具体参考手册), 使用ip,port, VS名 来定位。
主要参数需要:操作类型type, ip+port,以及 新增加的server_name,locations 字段。
例如:
{ “type”: “add”, “addr_port”: “0.0.0.0:90”, “server_name”: “server-90”, “locations”: [{ “location_rule”: “=”, “location_name”: “/ttt1 “, “location_body”: “return 200 ttt1” }] }
注意:
- 如果需要同时新增动态VS, 和 动态location,是需要分别两次调用不同的api 来完成。
- 每次只能添加,删除单个VS 或 location。多个的话需要多次调用。
10.https://njet.org.cn/cases/http3_ntls_support/请问这个有具体的配置文件吗?
A:
当时配置成功的server如下,此外还需要客户端支持quic协议及国密套件 server { listen 8443 quic reuseport; listen 8443 ssl; ssl_ntls off; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; # ssl_certificate /usr/local/njet/conf/sm2_sign.cer /usr/local/njet/conf/sm2_enc.cer; # ssl_certificate_key /usr/local/njet/conf/sm2_sign.key /usr/local/njet/conf/sm2_enc.key; ssl_certificate /usr/local/njet/conf/sm2_sign.cer ; ssl_certificate_key /usr/local/njet/conf/sm2_sign.key; server_name njet.org.cn; location / { add_header Alt-Svc ‘h3=”:$server_port”; ma=86400’; root html; } … }
目前只支持单证书
需要用tongsuo8.3编译,
./build_cc.sh –with_tongsuo_8_3 conf
./build_cc.sh make
最好不要用之前编译过的,重新下载或解压
11.支持http3国密对xquic的代码修改在哪里能看到?
https://192.168.30.120/njet_dev/http3/-/blame/http3/xquic.diff
12.FTP代理场景异常:直连正常但代理返回425 (RETR response)
ftp代理:客户端直连ftp 服务是可以正常上传下载文件的,通过njet 代理连接ftp 服务返回curl:(19) RETR response:425
A:大概原因是在连接中变换了IP地址.解决方法:
# vi /etc/vsftpd/vsftpd.conf
添加:pasv_promiscuous=YES
保存退出
# service vsftpd restart