如何用OpenNJet部署自己的应用程序?——OpenNJet实践记录

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可以应对大规模集群和高可用性要求时的安全性、可用性和管理效率,从而帮助企业保护数据、提供可靠的服务,并简化运维任务。

相关推荐
小扳6 小时前
微服务篇-深入了解 MinIO 文件服务器(你还在使用阿里云 0SS 对象存储图片服务?教你使用 MinIO 文件服务器:实现从部署到具体使用)
java·服务器·分布式·微服务·云原生·架构
aherhuo16 小时前
kubevirt网络
linux·云原生·容器·kubernetes
catoop17 小时前
K8s 无头服务(Headless Service)
云原生·容器·kubernetes
小峰编程18 小时前
独一无二,万字详谈——Linux之文件管理
linux·运维·服务器·云原生·云计算·ai原生
小马爱打代码18 小时前
云原生服务网格Istio实战
云原生
运维小文19 小时前
K8S中的PV、PVC介绍和使用
docker·云原生·容器·kubernetes·存储
ζั͡山 ั͡有扶苏 ั͡✾20 小时前
Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)
云原生·容器·kubernetes
Hadoop_Liang20 小时前
Kubernetes ConfigMap的创建与使用
云原生·容器·kubernetes
老猿讲编程20 小时前
技术发展历程:从 CORBA 到微服务
微服务·云原生·架构
小诸葛的博客1 天前
istio-proxy不打印访问日志怎么解决?
云原生·istio