OpenNJet:新一代云原生应用引擎

  • 云原生应用引擎??
  • 云原生应用引擎!!
  • 那么首先,什么是云原生?
  • 然后,什么是应用引擎?
  • 最后,OpenNJet!!
  • 百闻不如一见,来看一下~
  • 编译与安装,入门的噩梦(好像不是?)
  • 安装完成,当然要小试一下
  • 启动默认配置访问Web查看
  • 总结
  • 参考资料



OpenNJet:新一代云原生应用引擎_云原生


🌈你好呀!我是 是Yu欸

🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!


云原生应用引擎??

想必读者在见到文章题目时第一反应便是…

云原生应用引擎是什么?云原生应用引擎能干什么?OpenNJet为什么能称作新一代云原生应用引擎?

然后…

受到了不明力量的驱使,点开了这篇文章(也有可能是真要用到?)

不过,不论是哪种原因点进来,笔者都希望这篇文章能够将笔者的体验分享给大家,能够稍许驱散大家的疑惑,如果能够帮助某位读者快速入手那就再好不过了!

总之先附一下OpenNJet的官网地址


https://njet.org.cn


那么,接下来,就与笔者一起来走近科学!!(大雾)

云原生应用引擎!!

那么首先,什么是云原生?

云原生是在云计算环境中构建、部署和管理现代应用程序的软件方法。对于企业而言,如果有一个高度可扩展、灵活且具有弹性的应用程序,那么不就可以实现快速更新,就能够更方便的迭代产品了吗?在这一理念下,云原生的出现便成为一种必然。

然后,什么是应用引擎?

应用引擎通常是一种软件平台或框架,它提供了一组工具,库和服务来帮助开发人员更轻松的构建应用程序,并且能够自动处理一些底层的基础设施问题,从而让开发人员能够更专注与业务逻辑的开发。

最后,OpenNJet!!

OpenNJet应用引擎是基于NGINX的面向互联网和云原生应用提供的运行时组态服务程序,作为底层引擎,OpenNJet 实现了NGINX 云原生功能增强安全加固和代码重构,利用动态加载机制可以实现不同的产品形态,如Web服务器、流媒体服务器、负载均衡、代理(Proxy)、应用中间件、API网关、消息队列等产品形态等等。

OpenNJet 在云原生架构中作为数据平面,除了提供南北向通信网关的功能以外,还提供了服务网格中东西向通信能力。在原有功能基础上增加了透明流量劫持、熔断、遥测与故障注入等新功能特性。

OpenNJet:新一代云原生应用引擎_OpenNJet_02

百闻不如一见,来看一下~

编译与安装,入门的噩梦(好像不是?)

想必有不少读者曾经使用过这样那样的软件,它们的编译与安装总是那么折磨。但是,在这里,这些问题将不复存在!

OpenNJet提供了多种安装方式,无论是省事的二进制安全包,还是利用apt,yum等包管理工具安装发行版,亦或是想要源码安装,都有着一套完整的流程供你选择。那么,同样将网址附上


https://njet.org.cn/docs/quickstart/


当然,对于docker用户来说,是不是会想找找有没有现成的镜像?这…当然也是有的!


https://gitee.com/njet-rd/njet/releases


在其中也有docker的使用

OpenNJet:新一代云原生应用引擎_linux_03

那么为了能够尽量省事,并且能够稍微选择一下版本,笔者在这里就利用官方的二进制包来下载了,使用的虚拟机是CentOS Linux release 7.9.2009 (Core)

  1. 从上一个网址选择想要的安装包,这里就选择当前最新的2.1.0了
  2. 然后就用wget下载安装包之后在root下执行yum安装即可
wget https://gitee.com/njet-rd/njet/releases/download/v2.1.0/njet-2.1.0-1.el7.x86_64.rpm
yum install njet-2.1.0-1.el7.x86_64.rpm #注意要在root下运行,用su命令切换

OpenNJet:新一代云原生应用引擎_云原生_04

OpenNJet:新一代云原生应用引擎_原生应用_05

安装完成,当然要小试一下

先启动njet

systemctl start njet

然后看看官方文档里,有不少的njet的命令,尝试运行一下,不出意外的话,就出意外了

OpenNJet:新一代云原生应用引擎_服务器_06

what?没有找到这一命令,看来在安装时它并没有产生一个链接,不慌,先去路径下看看怎么个事

OpenNJet:新一代云原生应用引擎_服务器_07

可以看到他这里面是有一个二进制文件的,至于为什么是这种令人不安的红色,似乎是Xshell的恶趣味,总之先执行试试

OpenNJet:新一代云原生应用引擎_服务器_08

可以看到它能够正常执行,但是咱不能一直输绝对命令来执行,这也太难受了。所以就加个软连接到/usr/local/bin下,这里是bash默认会寻找二进制文件的路径,链接完之后再次执行,成功

ln -s /usr/local/njet/sbin/njet /usr/local/bin/njet

OpenNJet:新一代云原生应用引擎_云原生_09

启动默认配置访问Web查看

OpenNjet的主要配置文件是njet.conf,倘若之前的步骤执行ok的话,可以在它的文件夹下看到一个默认的配置文件

OpenNJet:新一代云原生应用引擎_云原生_10

然后当然也可以自定义配置,这里我们就根据官网的例子一步步往下进行。

  1. 编写njet.conf,这个conf的位置看自己的爱好,njet自带的一个默认的conf,用来检测是否正确。
Go
http {
    server {
       listen 80;
       server_name example.com;
       location / {
           root /var/www/html;
           index index.html;
       } 
    }
}

上例直接选自官网,它在 HTTP 块中定义了一个名为“server”的服务器块。该服务器块监听 80 端口,并将请求的根目录设为/var/www//html,倘若没有则返回index.html。

  1. 部署Web应用程序:可以将 Web 应用程序放置在服务器上的任何位置,只要在 配置文件中正确设置 root 目录即可。
  2. 启动Njet,这里就直接启动它的默认配置看看,注意笔者这里是在目录下
njet -c conf/njet.conf 
  常见启动参数:
      -p 指定 prefix 配置文件路径,不指定,默认/etc/njet 
      -c 指定配置文件,不指定,默认 njet.conf
      -e 指定 error 日志文件
  1. 访问Web,显示

OpenNJet:新一代云原生应用引擎_云原生_11

总结

OpenNJet作为新一代云原生引擎有着多样的安装方式可以满足不同情况的需求,除了上文所展示的基本Web配置外,OpenNJet还具有动态配置,国密支持等等功能,期待能有越来越多的开发者加入其中,一起体验,不断改进。

参考资料

OpenNJet使用手册v2.1.0

CoPilot开发指南

OpenNJet开源社区

NJet Docker镜像介绍与运行