All in OpenNJet:OpenNJet 助力Web应用开发

前言

++OpenNJet++ 应用引擎是基于 NGINX 的面向互联网和云原生应用提供的运行时组态服务程序,作为底层引擎,++OpenNJet++实现了NGINX 云原生功能增强、安全加固和代码重构,利用动态加载机制可以实现不同的产品形态,如Web服务器、流媒体服务器、负载均衡、代理(Proxy)、应用中间件、API网关、消息队列等产品形态等等。它可以提供http3、kic、kv-store、qa、ssl、upstream-server动态化、国密、故障注入、流量劫持、灰度发布等方面技术的应用,同时支持go、lua等脚本扩展NJet的功能。

在本文中,我们将通过一个例子探讨++OpenNJet++ 平台的各种优势和特点,以及如何通过++OpenNJet++来加速您的项目开发、降低成本、提高可靠性。让我们一起开启创新之旅,共同构建更加开放、共享的科技未来!

安装OpenNJet

首先选择正确的安装包(CentOS选rpm,Ubuntu选deb)并下载

下载好之后开始安装

等待安装完成后,启动OpenNJet

返回了网页内容,说明启动成功。

部署Web Server

将网站放入linux系统下,这里我们放在用户根目录。进入到/usr/local/njet/conf中修改配置文件

OpenNJet的默认配置文件为njet.conf.default, 修改里面的http部分

将我们的网站文件夹设定为根目录,将首页设置为index.html。保存之后,启动OpenNJet,并用curl测试

可以看到网站已经上线。这时我们用浏览器访问8080端口,就可以访问到网站。

增加访问计数

OpenNJet 实现了可持久化的键值存储,这一功能可以实现OpenNJet不同模块间运行状态信息的共享。接下来我们尝试为网站增加访问计数。首先在网站中增加一个元素,并在其中添加计数器

这段代码首先在页面上创建了一个带有唯一标识符的 <b> 元素,用于显示访问计数。然后,通过 JavaScript 使用 XMLHttpRequest 对象向服务器发送异步请求,请求页面的访问计数。请求完成后,根据服务器返回的状态码,更新页面上的计数器显示,如果请求成功,将计数值显示在计数器上,否则显示错误信息。之后打开配置文件,打开njet中lua的支持,并在路由中添加count节点

当收到以 /counter 开头的请求时,将执行 Lua 代码块。该代码块首先引入了名为 kv 的 Lua 模块,用于处理键值存储操作。接着,从请求中获取 URI 参数,其中的 page_id 参数被用作键值存储中的键。如果成功从数据库中获取了指定键的值,则将其作为页面的访问计数值。访问计数加一,然后将更新后的值写回到数据库中。最后,返回更新后的计数值给客户端。保存好后,通过curl访问2次目标页面

之后打开网站,可以看到计数器刷新

总结

在这个快速变化的世界中,科技的发展一直是推动社会进步的关键力量。然而,随着技术的不断演进和创新,我们也面临着越来越多的挑战和机遇。在这样的背景下,开源软件和开放式创新成为了不可或缺的一部分,为我们开辟了通向更加开放和共享的技术世界的大门。

在开源软件的世界里,OpenNJet作为一个开放、灵活的平台,为技术创新提供了全新的可能性。OpenNJet致力于打造一个开放、协作的生态系统,为开发者和创新者提供了丰富的工具和资源,以解决复杂的技术挑战并促进项目的快速发展。

相关推荐
纨妙几秒前
python打卡day59
开发语言·python
waynaqua1 分钟前
FastAPI开发AI应用二:多厂商模型使用指南
python·openai
断竿散人2 分钟前
JavaScript 异常捕获完全指南(下):前端框架与生产监控实战
前端·javascript·前端框架
Danny_FD4 分钟前
Vue2 + Vuex 实现页面跳转时的状态监听与处理
前端
小飞悟4 分钟前
别再只会用 px 了!移动端适配必须掌握的 CSS 单位
前端·css·设计
秋难降5 分钟前
Python 知识 “八股”:给有 C 和 Java 基础的你😁😁😁
java·python·c
安思派Anspire5 分钟前
LangGraph + MCP + Ollama:构建强大代理 AI 的关键(一)
前端·深度学习·架构
LRH6 分钟前
JS基础 - 基于 Generator + Promise 实现 async/await 原理
前端·javascript
Jolyne_6 分钟前
可配置永久生效的Table组件的封装过程
前端·react.js
断竿散人7 分钟前
JavaScript 异常捕获完全指南(上):从同步异步到 Promise 错误处理
前端·javascript·promise