<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>OpenNJet应用 :: NJET文档</title>
    <link>https://docs.njet.org.cn/docs/v4.0.1/njet_application/index.html</link>
    <description></description>
    <generator>Hugo</generator>
    <language>zh</language>
    <lastBuildDate>Thu, 23 Oct 2025 17:23:22 +0800</lastBuildDate>
    <atom:link href="https://docs.njet.org.cn/docs/v4.0.1/njet_application/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Portal功能</title>
      <link>https://docs.njet.org.cn/docs/v4.0.1/njet_application/portal/index.html</link>
      <pubDate>Mon, 25 Aug 2025 10:33:09 +0800</pubDate>
      <guid>https://docs.njet.org.cn/docs/v4.0.1/njet_application/portal/index.html</guid>
      <description>NJet Portal 应用门户管理介绍 1. 应用门户简介 NJET 应用引擎是基于 Nginx 的面向互联网和云原生应用提供的运行时组态服务程序，作为底层引擎，NJET 实现了NGINX 云原生功能增强、安全加固和代码重构，利用动态加载机制可以实现不同的产品形态，如Web服务器、流媒体服务器、负载均衡、代理(Proxy)、应用中间件、API网关、消息队列等产品形态等等。 NJET使用现有的API Gateway及各动态配置模块提供的能力，实现了一个Portal管理模块。通过该模块，对外提供应用门户的功能，以此来简化应用的开发及部署过程。应用可以只专注于业务逻辑的实现，将通用的安装配置及权限认证功能统一交给NJET应用门户管理模块。逻辑架构如下图所示：&#xA;2. 应用部署流程 用户使用管理员账号登录Portal门户，上传应用，添加用户/组/角色，最后进行应用的授权。完成上述操作后，使用普通用户账号登录门户，即可使用应用。&#xA;a. 管理员登录 在部署包含Portal 管理模块的环境上，使用api gateway的管理员账号登录后，将显示Portal 的管理界面，在该界面中可以进行应用的部署，及相关的授权。&#xA;b. 上传应用 应用管理中点击“新增”，选择Portal 应用的相应npk 文件(应用的结构在后续章节进行说明)。点击确认后，Portal管理模块将自动创建应用需要的Location/Upstream, 由于使用了NJET的动态配置功能，所有的改动将实时生效，不需要重启或重加载NJET。&#xA;应用如果需要连接第三方组件，门户管理模块也提供了通用组件的配置能力。</description>
    </item>
    <item>
      <title>基于Portal的NJet模拟环境</title>
      <link>https://docs.njet.org.cn/docs/v4.0.1/njet_application/portal_njet/index.html</link>
      <pubDate>Thu, 23 Oct 2025 17:23:22 +0800</pubDate>
      <guid>https://docs.njet.org.cn/docs/v4.0.1/njet_application/portal_njet/index.html</guid>
      <description>1. 功能描述 作为开发人员，经常碰到的问题是代码开发、测试都是好的，但在客户现场/生产环境，总是出各种各样的问题。这种问题，有可能是实现的逻辑，但更多的情况是现场人员的配置问题导致。因此开发人员需要一个和现场完全一致的环境，进行现场的故障复现，配置验证。&#xA;NJet作为应用引擎，应用场景复杂，配置灵活，当然也面临此类问题。为了快速模拟 NJet 配置，验证整条业务链路是否通畅，同时检验系统在高压、大配置数据场景下的承载能力，并确认证书、限流等关键机制是否生效，NJet的模拟环境应运而生。我们期望通过该环境：&#xA;自动构建、完全模拟客户的网络环境拓扑 可视化验证客户的配置有效性 可进行批量/单独的功能测试 能够进行域名解析，证书校验，客户端地址等模拟，辅助功能验证 同时，出于简化GUI管理的目的，该模拟应用利用NJet存在的Portal能力，避免了相关的认证授权的开发工作。&#xA;2. NJet模拟应用的安装 随NJet4.0发布，NJet发布了模拟应用的安装包，因此需首先安装Portal安装包，在Portal部署完成后，通过GUI安装模拟应用&#xA;2.1 安装njet njet4.0.1.0安装包下载链接获取&#xA;安装njet4.0.1.0：&#xA;yum localinstall njet-4.0.1.0-1.el7.x86_64.rpm 2.2 配置 njet.conf:&#xA;worker_processes auto; cluster_name njet; node_name node1; error_log logs/error.log info; helper ctrl modules/njt_helper_ctrl_module.so conf/njet_ctrl.conf; helper broker modules/njt_helper_broker_module.so; load_module modules/njt_agent_dynlog_module.so; load_module modules/njt_dyn_ssl_module.so; load_module modules/njt_http_vtsc_module.so; load_module modules/njt_http_location_module.so; load_module modules/njt_http_lua_module.so; load_module modules/njt_http_dyn_upstream_module.so; load_module modules/njt_http_dyn_server_module.so; load_module modules/njt_http_token_sync_module.so; load_module modules/njt_http_upstream_member_module.so; load_module modules/njt_http_dyn_lua_module.so; load_module modules/njt_http_mqtt_module.so; load_module modules/njt_stream_ws_module.so; load_module modules/njt_stream_proto_server_module.so; load_module modules/njt_openapi_util_module.so; events { worker_connections 1024; } shared_slab_pool_size 100m; http { token_sync zone=token:4M sync_time=5s clean_time=10s; dyn_kv_conf conf/iot-work.conf; include mime.types; access_log off; vhost_traffic_status_zone; lua_package_path &#34;$prefix/lualib/lib/?.lua;$prefix/modules/?.lua;$prefix/apps/?.lua;;&#34;; lua_package_cpath &#34;$prefix/lualib/clib/?.so;;&#34;; init_by_lua_block { local _=require(&#34;lor.index&#34;) local _=require(&#34;lsqlite3complete&#34;) } upstream mqtt_upstream { mqtt_server 127.0.0.1:28083; } server { listen 8080; error_page 401 =302 /portal; client_max_body_size 1000m; location / { #root html; root apps/simulateApp/static; } location /icons/ { alias /usr/local/njet/apps/__icons/; try_files $uri =404; } location /v1/traces { mqtt_topic /trace; client_body_buffer_size 10M; mqtt_pass mqtt_upstream; } location /ws2mqtt { proxy_pass http://127.0.0.1:28082; } } } stream { upstream up_broker { server unix:/usr/local/njet/data/mosquitto.sock; } server { listen 127.0.0.1:28083; mqtt_pass up_broker; mqtt_proxy_next_upstream on; mqtt_proxy_next_upstream_tries 3; } server { listen 28082; proto_server on; proto_buffer_size 1024k; proto_server_idle_timeout 600; proto_server_code_file &#34;modules/njt_stream_ws2mqtt_tcc_module.so&#34;; proto_pass up_broker; #proxy_xxx (设置证书) } } njet_ctrl.conf:</description>
    </item>
  </channel>
</rss>