OpenNJet:基于 NGINX 的面向互联网和云原生的运行时组态服务程序

#暑期创作大赛#

OpenNJet 应用引擎是基于 NGINX 的面向互联网和云原生应用提供的运行时组态服务程序。具备环境感知、安全控制、加速优化等能力,作为底层引擎,OpenNJet 利用动态加载机制可以实现不同的产品形态,如API网关、消息代理、出入向代理,负载均衡,WAF等等。在云原生架构中,OpenNJet 除了提供南北向通信网关的功能以外,还提供了服务网格中东西向通信、透明流量劫持、熔断、遥测与故障注入等新功能特性。

OpenNJet 最早是基于 NGINX1.19 基础 fork 并独立演进,随着 NGINX 版本迭代,吸收上游 NGINX 的更新,已经同步更新到 NGINX1.23.1 版本,OpenNJet 具有高性能、稳定、易扩展的特点,同时也解决了 NGINX 长期存在的难于动态配置、管理功能影响业务等问题。我们目标在于适应国内特定的技术规范及标准,如国密算法套件支持、构建安全可控的云原生数据面,支撑我国云原生产业生态。

技术架构

功能特性

源码下载

OpenNJet 主库地址:

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

安装

Quic Start:

提供基于 Dockerfile 文件的形式进行快速编译

依赖:

  1. docker 环境(需要在编译机器安装docker并启动docker)

步骤:

  1. 下载 OpenNJet 源码
  2. 执行如下命令:

docker build -t njet_main:v1.0 .

docker run -v pwd:/njet_main njet_main:v1.0 /bin/bash -c "cd /njet_main && sh build_njet.sh"

  1. 编译完后,在 objs 目录下,主要包含 njet 文件和相关的 so 文件

njet 可执行文件

*.so 相关模块对应的动态库文件

FAQ

什么是应用引擎?


应用引擎是面向互联网和云原生应用提供的运行时组态服务程序。具备环境感知、安全控制、加速优化等能力,一般呈现为Web服务、流媒体服务、代理(Proxy)、应用中间件、API网关、消息队列等产品形态。

  • 互联网时代国际主流的应用引擎包括:NGINX, Apache, IIS 等。
  • 在云原生时代有许多新的轻量级应用引擎涌现,比较流行的云原生应用引擎包括: NGINX(C语言 ) ,Envoy(C++语言) , Linkerd(Rust语言) 等。

在云原生架构中,应用引擎除了提供南北向通信网关的功能以外,还提供了服务网格中东西向通信、透明流量劫持、熔断、遥测与故障注入、链路追踪、蓝绿发布等新功能特性,因此应用引擎在云原生架构中发挥着更为关键的作用。

图1 云原生应用引擎架构

应用引擎的产品形态

图2 应用引擎产品形态

如上图所示,应用引擎产品形态包括Web服务器、流媒体服务器、应用服务器和代理服务器等。其中代理服务器又可分为正向代理、反向代理、边车和消息代理等产品。

项目地址:
https://github.com/Gebonaa/OpenNJet

相关文章

Nginx动荡:核心开发者因安全分歧出走,启动分叉项目

IT之家 2 月 19 日消息,核心开发者马克西姆杜宁(Maxim Dounin)近日发布公告,因安全披露和修复漏洞优先级上的分歧,决定退出 Nginx 项目,并分叉推出 freenginx 项目。杜...

HW才刚开始,就爆大瓜了,这个圈子里少装B,低调一些···

最近,网上又开始热闹了,好多人都在传一些聊天记录,跟看戏一样。有人在朋友圈里瞎吹牛,结果服务器被人搞坏了,就连自己的简历也被人翻出来了。这事儿挺让人没想到的,有些人学了点小本事,就觉得自己天下第一,到...

413 Request Entity Too Large

413 Request Entity Too Large“413 Request Entity Too Large” 是 HTTP 状态码的一种,表示请求的实体(通常是指请求消息中的主体部分,如上传的...

国产微服务网关Apache APISIX 上手

2019 年 10 月 17 日,支流科技 API 网关 APISIX 进入 Apache 开始孵化。笔者表示去搜索了一下这家公司 OpenResty 圈内顶级大牛《OpenResty 最佳实践》作者...

503 Service Unavailable:服务器暂时无法处理请求

当用户访问网站时,遇到“503 Service Unavailable”错误时,意味着服务器暂时无法处理请求。这种情况通常是由于服务器超载、正在进行维护或其他临时问题引起的。了解 503 错误的成因及...