文章目录
- 一、前言
- 二、什么是OpenNJet 应用引擎
- 三、OpenNJet的优势
- 3.1 性能无损动态配置
- 3.2 灵活的CoPilot框架
- 3.3 支持HTTP/3
- 3.4 支持国密
- 3.5 企业级应用
- 3.6 高效安全
- 四、centos 安装
- 4.1 生成njet.repo
- 4.2 更新yum 缓存
- 4.3 安装 njet 或 njet-otel
- 五、OpenNJet配置与部署
- 5.1 配置
- 5.3 启动njet服务
- 5.4 停止njet服务
- 六、小结
一、前言
云原生引擎是一种用于构建、部署和管理云原生应用程序的工具。它可以帮助开发人员更轻松地将应用程序部署到云端,并利用云计算资源来提高应用程序的可靠性、可扩展性和安全性。云原生引擎通常包括容器编排、服务发现、负载均衡、自动伸缩等功能,帮助开发人员更好地利用云计算平台的优势。
二、什么是OpenNJet 应用引擎
OpenNJet 应用引擎是基于 NGINX 的面向互联网和云原生应用提供的运行时组态服务程序,作为底层引擎,OpenNJet 实现了NGINX 云原生功能增强、安全加固和代码重构,利用动态加载机制可以实现不同的产品形态,如Web服务器、流媒体服务器、负载均衡、代理(Proxy)、应用中间件、API网关、消息队列等产品形态等等。OpenNJet 在云原生架构中作为数据平面,除了提供南北向通信网关的功能以外,还提供了服务网格中东西向通信能力。在原有功能基础上增加了透明流量劫持、熔断、遥测与故障注入等新功能特性。
OpenNJet 最早是基于 NGINX1.19 基础 fork 并独立演进,OpenNJet 具有高性能、稳定、易扩展的特点,同时也解决了 NGINX 长期存在的难于动态配置、管理功能影响业务等问题。我们旨在适应国内特定的技术规范及标准,如国密算法套件支持、构建安全可控的云原生数据面,支撑我国云原生产业生态。
官方链接:https://njet.org.cn/
三、OpenNJet的优势
3.1 性能无损动态配置
动态配置能力解决NGINX长期痛点,实时更改NGINX配置而无需重新启动服务器。不中断务,快速响应流量需求变化
3.2 灵活的CoPilot框架
在实现高性能的数据处理能力的同时提供方便扩展的管理接口,如指标输出、健康检查、管理界面、配置同步等以 便灵活地、动态地监控、配置和管理系统的各个方面,同时确保数据面的稳定性和可靠性
3.3 支持HTTP/3
HTTP/3采用了全新的底层传输协议即QUIC,为您提供更快、更可靠和更安全的Web浏览体验,保证互联网数据传输效率的同时减少用户等待,并增强网络的安全性
3.4 支持国密
支持国密 SM2、SM3、SM4算法,场景主要为Server和反向代理两种场景,为您提供更强的数据保护,满足合规性
3.5 企业级应用
提供集群状态同步及集群配额控制、高可用及运维文档一体化功能,可以帮助企业更好地实现自动化部署、持续集成和持续交付等 DevOps 实践
3.6 高效安全
在提高现代应用的安全性、可用性和管理效率,特别是涉及到敏感数据、大规模集群和高可用性要求时,帮助企业更好地保护数据、提供可靠的服务,并简化运维任务
四、centos 安装
OpenNJet提供了多种安装方式,无论是省事的二进制安全包,还是利用apt,yum等包管理工具安装发行版,亦或是想要源码安装,都有着一套完整的流程供你选择。
链接跳转:https://njet.org.cn/docs/quickstart/
这里为了免去软件编译与安装的折磨。
为大家带来超详细的教程:
4.1 生成njet.repo
现在 njet 支持yum源安装了,目前只支持 centos 7 和 x86_64架构。具体安装方式如下:
首先使用vim打开
vim /etc/yum.repos.d/njet.repo
再往里面写入指定内容:
[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
4.2 更新yum 缓存
yum clean all
yum makecache
4.3 安装 njet 或 njet-otel
yum install njet
yum install njet-otel
五、OpenNJet配置与部署
5.1 配置
以下是一个简单的 OpenNJet 配置文件示例,它将所有请求重定向到一个 HTML 文件。你可以通过修改 njet.conf 文件来配置 OpenNJet。
1.systemctl stop njet 先停止服务
2.编辑/usr/local/njet/conf/njet.conf
vim /usr/local/njet/conf/njet.conf
worker_processes auto;
cluster_name njet;
node_name node1;
error_log logs/error.log error;
helper ctrl modules/njt_helper_ctrl_module.so conf/njet_ctrl.conf;
helper broker modules/njt_helper_broker_module.so;
#helper ha modules/njt_helper_ha_module.so conf/vrrp.conf;
load_module modules/njt_http_split_clients_2_module.so;
load_module modules/njt_agent_dynlog_module.so;
load_module modules/njt_http_dyn_bwlist_module.so;
load_module modules/njt_dyn_ssl_module.so;
load_module modules/njt_http_vtsc_module.so;
load_module modules/njt_http_location_module.so;
#load_module modules/njt_http_lua_module.so;
#load_module modules/njt_http_modsecurity_module.so;
#load_module modules/njt_http_dyn_modsecurity_module.so;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name example.com;
location / {
root /var/www/html;
index index.html;
}
}
}
上述配置中,我们在 HTTP 块中定义了一个名为“server”的服务器块。该服务器块监听 80 端口,并将请求的根目录设置为/var/www/html。如果请求的路径不存在,默认会返 回 index.html 文件。
5.2 部署web
mkdir /var/www/html
cd /var/www/html
vi index.html
添加内容如下
<html>
<head>hello</head>
<body>body</body>
</html>
手动创建html文件
5.3 启动njet服务
systemctl start njet
浏览器访问 Web 应用程序。只需输入服务器的 IP 地址或域名即 可访问 Web 应用程序。如果您按照上述示例配置 OpenNJet,则应将 Web 应用程序放置在 /var/www/html 目录中,并使用服务器的 IP 地址或域名访问它。
5.4 停止njet服务
systemctl stop njet
六、小结
随着云原生技术的迅速发展和普及,OpenNJet应用引擎作为基于NGINX的云原生解决方案,其未来的前景无疑将更加广阔和光明。
因为云计算的普及和云原生技术的不断成熟,所以有有着越来越多的企业将选择将业务迁移到云端,而OpenNJet作为高效的云原生应用引擎,可以为企业提供更稳定、可靠、安全的云服务。
当然上述所说的只是一方面,OpenNJet能做的事情远不止于此,我个人对OpenNJet是非常看好的。