OpenNJet 应用引擎是基于 NGINX 的面向互联网和云原生应用提供的运行时组态服务程序,其在云原生架构中作为数据平面,除了提供南北向通信网关的功能以外,还提供了服务网格中东西向通信能力,本篇文章将从零开始使用OpenNJet部署自己的应用程序。
一、下载安装OpenNJet
OpenNJet 提供了二进制RPM 包和 DEB 包 安装方法 , 首先在终端输入lsb_release -a命令,查看本机架构环境:
然后进入njet.org.cn/docs/quicks...
将对应的rpm包或者deb安装好后,使用yum或者dpkg方法安装,由于本机是CentOS系统,故在终端输入yum localinstall njet-2.0.1-1.el7.x86_64.rpm进行安装:
使用 rpm 或 deb 二进制安装后,会在 /usr/lib/systemd/system/ 目录下添加 service文件,并提示Complete!表明成功。
安装成功后,就可以使用 sudo systemctl start njet 启动服务,以 root 权限执行 systemctl
工具,然后可以通过浏览器或命令curl http localhost:8080/访问访问部署机器的8080地址,显示If you see this page, web platform is successfully installed andworking. Further configuration is required.或者输出以下html内容说明OpenNJet安装成功!
二、配置与部署应用程序
下面使用OpenNJet 来配置一个简单的 HTTP 服务器,并搭建自己的应用程序上去。
首先,我们将开发好的应用程序进行打包,这里我打包了一个之前开发的Vue项目,直接在终端输入npm run build
或者vite build
进行打包就可以,不同项目的打包指令和流程可能不相同,需要查看package.json的具体配置。
打包完成后,会生成一个dist文件夹,就是成功打包。
然后将打包好的dist文件夹整个上传到/home/www/html中:
上传完成后,下面对OpenNJet进行配置,首先新建一个conf文件夹专门存放OpenNJet配置文件,在文件夹中新建一个njet.conf:
并将以下基本配置写入njet.conf文件中:
ini
http {
server {
listen 80;
server_name example.com;
location / {
root /home/www/html/dist;
index index.html;
}
}
}
其中,
http
用于定义 HTTP 服务器的配置,server
用于定义一个虚拟主机。listen 80;
指定该服务器监听 80 端口,即 HTTP 默认端口。location / { ... }
定义了请求的路径,这里是根路径/
,也就是所有请求的入口点。location
块内部定义了如何处理该路径的请求。root /var/www/html;
指定了请求的根目录为/home/www/html/dist
,也就是之前放dist文件夹的地方。(也可以修改,可以将打包好的应用程序放在服务器上的任何位置,只要正确设置 root 目录即可。)index index.html;
指定了当请求的路径指向一个目录时,服务器应该返回的默认文件为index.html
。
最后,在终端输入以下命令启动 OpenNJet:、
bash
njet -p /media/ -c conf/njet.conf
其中,/media/表示之前存放njet.conf 配置文件路径,conf/njet.conf 指定配置文件,然后就可以使用 Web 浏览器访问 Web 应用程序了。输入服务器的IP地址或域名即可访问Web应用程序:
此外,还可以根据需要进行修改和定制,比如在实际部署 Web 应用程序时,使用 OpenNJet 进行动态配置在不中断服务的情况下实时更改 Web 服务器配置,从而快速响应流量需求的变化,或者使用 OpenNJet的负载平衡来分配服务器之间的负载,确保请求被有效地分配到可用的服务器上等等,后续有机会展开。
三、OpenNjet使用感受
总得来讲,OpenNJet给我留下了不错的体验感受。首先OpenNJet通过动态配置能力解决了性能无损动态配置的问题,能够无需重新启动服务器,快速响应流量需求变化;其次,OpenNJet的CoPilot框架不仅实现了高性能的数据处理能力,还提供了方便扩展的管理接口,如指标输出、健康检查、管理界面、配置同步等,使得监控、配置和管理系统的各个方面变得更加灵活和动态;另外,OpenNJet采用全新的底层传输协议QUIC,提供了更快、更可靠和更安全的Web浏览体验。最后,作为一个企业级应用,OpenNJet提供了集群状态同步、集群配额控制、高可用性和运维文档一体化功能。这些功能可以帮助企业更好地实现自动化部署、持续集成和持续交付等DevOps实践。
总的来说,OpenNJet可以应对大规模集群和高可用性要求时的安全性、可用性和管理效率,从而帮助企业保护数据、提供可靠的服务,并简化运维任务。