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致力于打造一个开放、协作的生态系统,为开发者和创新者提供了丰富的工具和资源,以解决复杂的技术挑战并促进项目的快速发展。

相关推荐
胡耀超23 分钟前
Token的八副面孔:为什么“词元“不需要更好的翻译,而需要更多的读者
大数据·人工智能·python·agent·token·代币·词元
带娃的IT创业者28 分钟前
WeClaw_42_Agent工具注册全链路:从BaseTool到意图识别的标准化接入
大数据·网络·人工智能·agent·意图识别·basetool·工具注册
CV矿工39 分钟前
VLA(Vision-Language-Action)模型在机器人领域的action 输出编码
人工智能·深度学习·机器人
冬奇Lab42 分钟前
一天一个开源项目(第62篇):lark-cli - 飞书/Lark 官方 CLI 与 AI Agent Skills
人工智能·开源·资讯
guslegend1 小时前
Ollama
人工智能·大模型
我命由我123451 小时前
React - 类组件 setState 的 2 种写法、LazyLoad、useState
前端·javascript·react.js·html·ecmascript·html5·js
第一程序员1 小时前
Python与前端集成:构建全栈应用
python·github
空空潍1 小时前
Spring AI与LangChain对比:组件对应关系、设计差异与选型指南
人工智能·spring·langchain
程序员小远1 小时前
Jmeter基础:Jmeter聚合报告详解
自动化测试·软件测试·python·测试工具·jmeter·测试用例·压力测试
凌波粒2 小时前
D2L学习笔记:安装、张量与数据处理
笔记·python·学习·pandas