OpenNJet:新一代的云原生应用引擎
OpenNJet:新一代的云原生应用引擎
🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主
📌 擅长领域:全栈工程师、爬虫、ACM算法
💒 公众号:知识浅谈
🔥 微信:zsqtcyl 联系我领取学习资料
🤞OpenNJet:新一代的云原生应用引擎🤞
🎈OpenNJet是什么
OpenNJet是基于开源NGINX
进行了功能定制的解决方案,继承 nginx-1.23.1 所有功能, 并且100%兼容nginx,经过内核重构、安全加固和功能增强的开发,具有性能无损动态配置、灵活的CoPilot框架、支持HTTP/3、支持国密、企业级应用、是一款高效安全的框架,其旨在满足云原生环境和国内特定技术规范及标准的需求,以构建安全可控的云原生数据平台,支持我国云原生产业生态的发展。
🎈OpenNJet的特性和架构
✨高性能:NJet性能是CNCF推荐Envoy的三倍。
✨功能多:故障注入、遥测、配置动态加载、服务发现等功能,支持HTTP/3服务器功能和FTP协议代理能力。利用底层的动态TCP流量劫持,OpenNJet实现了PASV FTP/SFTP支持,可以动态在代理部署的机器上开启或关闭FTP数据传输端口,从而在保证安全性的前提下实现灵活的负载均衡。
✨强安全:集成Web应用防火墙、原生支持国密/ RSA加密解密算法。
✨可扩展:强大的插件框架能力支持第三方应用开发。
✨可编程:支持LUA、Python可编程控制脚本,OpenNJet 架构设计已经考虑了动态配置的问题,Lua 脚本内容的修改上,使用架构提供的能力,在兼顾性能的情况下,实现了无需重启或重加载,实时更新Lua脚本的功能。
✨易管理:提供完善的API接口,内置多主集群和高可用性能力
🎈OpenNJet使用教程
本次教程采用一个最简单的使用方式来进行测试,提现NJet完美替代了Nginx的功能,并在原有功能上增强拓展其他功能,具有Copilot框架和动态配置框架,支持KV模块、doc模块、黑白名单、vts模块等功能。
🎈OpenNJet安装
CentOS7环境为例
- 从 gitee https://gitee.com/njet-rd/njet/releases上下载对应操作系统的rpm 格式安装包
- 使用 yum 进行安装 例如下载的安装包是njet-2.1.0-1.el7.x86_64.rpm
yum install njet-2.1.0-1.el7.x86_64.rpm
- 安装后,使用命令 systemctl start njet 启动服务
- 使用命令 systemctl stop njet 停止服务
🎈OpenNJet配置
以下是一个简单的 OpenNJet 配置文件示例,它将所有请求重定向到一个 HTML 文件。你可以通过修改 njet.conf 文件来配置 OpenNJet。
1.systemctl stop njet 先停止服务
2.编辑/usr/local/njet/conf/njet.conf
vi /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 文件。
🎈部署 Web 应用程序
本次测试采用手动创建html文件
mkdir /var/www/html
cd /var/www/html
vi index.html
添加内容如下
<html>
<head>cheshi</head>
<body>cheshi</body>
</html>
🎈启动 NJet并访问
systemctl start njet
启动服务
现在,可以使用 Web 浏览器访问 Web 应用程序。只需输入服务器的 IP 地址或域名即 可访问 Web 应用程序。如果您按照上述示例配置 OpenNJet,则应将 Web 应用程序放置在 /var/www/html 目录中,并使用服务器的 IP 地址或域名访问它。
总之,上述步骤为您提供了一个基本的示例,您可以根据需要进行修改和定制。在实际部署 Web 应用程序时,可能需要更复杂的OpenNJet 配置,例如反向代理、负载平衡等。
🍚OpenNJet使用总结
个人感受:通过本次学习和上手NJet的使用,了解到NJet拥有多项强大功能,包括动态配置加载、主动式健康检查、集群高可用性以及声明式API等,还是一个具备高性能、稳定性和易扩展性的解决方案,同时它还解决了NGINX长期以来存在的动态配置和管理功能对业务造成的不利影响。
体验推荐:针对Nginx无法解决的问题,NJet助力有效解决,探索未来的Web服务器体验!OpenNJet,为您带来高性能、稳定可靠的服务,并通过动态配置加载、主动健康检测和声明式API等功能,助您构建灵活、高效的Web应用集群。点击我快来使用吧。
更多推荐
所有评论(0)