前言:
在正式介绍OpenNJet之前,我们先来看看它的技术架构,如下图所示,OpenNJet正是NGINX的Pro版,在100%兼容NGINX基础上,新增了动态配置加载、主动式健康检测、集群高可用、声明式API等多种强大功能。
NGINX作为我们熟悉的老大哥,以其高效的异步事件驱动模型而闻名,在高流量场景下能够保持出色的性能,而不会像传统的同步服务器那样因为每个连接都占用一个线程而导致资源耗尽。今天给大家介绍的OpenNJet继承了
NGINX的高性能、并拥有功能多、强安全、可扩展、可编程、易管理等独特优势。那接下来跟着我一起从0-1揭开OpenNJet的神秘面纱吧。
一、初识OpenNJet
1、颜值:高矮胖瘦?
前面我们了解到OpenNJet拥有很多独特的优势,为了实现这些复杂的功能,OpenNJet应该比较重。因此在我的潜意识中OpenNJet应该是一款"重量级的嘉宾",然而OpenNJet的RPM安装包,只有仅仅的6M左右,真是一个字绝,因此OpenNJet给我的第一印象是够轻。
2、初体验:3分钟上手
在被OpenNJet够轻震撼的同时,我开始了我的体验之旅。OpenNJet的整个安装过程也非常简单,本次以Centos7的操作系统为例,来详细阐述整个安装过程。
2.1安装前准备
NJet官方提供centos,ubuntu,cloudOS等多个版本的2进制安装包,及软件源。如果你也是选择RPM的安装方式,我们需要先检查自己的Centos的版本,是不是Centos7的。
检查linux版本命令。
cat /etc/os-release
2.2安装启动
在检查完我们系统版本后,我们需要检查自己的账号是不是root账号,有没有连接外网等,如果我们不是root账号,我们需要在安装命令前面加上sudo来提权安装,服务器没有连接外网的情况下,我们可以点击下面链接先下载到本地再上传至linux系统安装盘中。
https://gitee.com/njet-rd/njet/releases/download/v2.0.1/njet-2.0.1-1.el7.x86_64.rpm
在线安装命令
下载njet2.1.0版本
sudo wget https://gitee.com/njet-rd/njet/releases/download/v2.1.0/njet-2.1.0-1.el7.x86\_64.rpm
#通过yum进行本地安装 sudo yum localinstall ./njet-2.1.0-1.el7.x86\_64.rpm
#启动njet sudo systemctl start njet
图2.2.1下载安装包效果图
图2.2.2yum本地安装效果图
图2.2.3成功启动效果图
Tips:整个过程只需三句命令,如果我们顺利的话,整个过程大概在三分钟左右可以完成。需要注意的是如果我们在下载安装包过程中遇到网络异常,被异常中断后,再次下载会默认将安装包重命名。如下图所示,此时我们需要将旧的安装包进行删除,再重命名我们新下载的安装包,继续后续的操作。
如上图所示,再次下载安装rpm安装包被重命名为...rpm.1,这里需特别注意下。
二、OpenNJet实战表现
1、动态配置体验
我们通过简单的三步命令完成了OpenNJet的安装和启动,这是我们可以通过{ip}:8081/doc/swagger/,进入OpenNJet的swagger 页面。在swagger 页面中可以对各功能api的访问,比如健康检查、动态access log 配置、动态VTS配置、动态 location 配置、动态 upstream api 配置等。
通过简单的web界面,就可以动态了解各api的GET/POST请求,轻松实现各种云原生api接口的配置接口访问,不愧是下一代云原生应用引擎,够强。
2、 GUI 参数动态配置
我们知道在NIGINX中参数都是静态配置,这导致每次修改一个小参数都必须重启服务才能生效,这对于云原生应用来说是非常的不友好。如下图所示我们通过{ip}:8081/doc/gui/,进入OpenNJet参数动态配置界面,通过点击加号新增log模块,点击保存两步就完成http_log模块的设置。
3、应用代理
企业出于数据安全等方面的考虑,很多应用都是在内网运行,但有时我们又需要与外部的一些应用集成,如企业微信、钉钉、飞书等。但我们又不能直接开放外网,此时我们就需要一款优秀的代理软件来完成与外部应用的通信。下面我们来看看OpenNJet是怎么快速实现我们的BI应用与企业微信代理通信。
在代理服务器上配置 OpenNJet代理。修改配置文件conf/njet.conf,在http{}之间添加如下代码:
server {
listen 8113; // 代理服务器端口
server_name frbi.cngrgf.com.cn; //代理服务器IP或者域名
access log logs/fr/access.log; //记录运行日志
error log logs/fr/error.log;//记录错误日志
location / {
proxy_pass http://10.110.13.109:80;//应用服务器内网地址
proxy set header Host frbi.cngrgf.com.cn;//外网访问域名
}
}
如找到njet.conf文件,添加代理信息,保持后进行功能测试。
在没有代理前,我们只能通过内网ip的方式来访问BI应用服务器。
通过OpenNJet代理后,我们就可以通过外网域名的方式来访问我们的BI应用了,这样我们就可以通过OpenNJet代理与企业微信进行通信。
通过OpenNJet代理后,BI系统就可以及时将企业发生的异常信息推送至企业微信群,大大降低了异常风险,提高了异常关闭的及时率和成本。
为了让大家更直观的感受,我们将推送的企业微信消息在浏览器端打开,我们可以看到,通过 OpenNJet代理转发后,将我们的异常信息推送到了企业微信中。
三、总结
总的来说,OpenNJet是一款轻量化的云原生应用引擎,强大而不笨重,易上手、不熬人。因其OPEN的api接口加上动态应用配置,更能满足企业对应用软件7*24小时高可用、高性能的运行需求。
当然OpenNJet还有很多应用场景等待挖掘,如果你也对OpenNJet感兴趣,不妨点击下方链接试用。欢迎在下方留言讨论,一起探索OpenNJet更多神奇的应用。