后端前端运维MCP 服务【免费下载链接】nginx-uiYet another WebUI for Nginx项目地址https://gitcode.com/gh_mirrors/ngi/nginx-ui点击查看免费下载Nginx UI 的[app]配置段承载着两个影响全局行为的关键参数控制列表分页大小的PageSize以及用于签发与校验用户身份令牌的JwtSecret。本篇以官方文档 config-app.md 为主体结合仓库源码深入讲解这两个配置项的类型、默认值、生效版本、底层实现与安全注意事项帮助你正确配置并理解其背后的运行机制。概述Nginx UI 的[app]配置段Nginx UIYet another WebUI for Nginx使用 INI 格式的配置文件app.ini保存全部服务端设置。从v2.0.0-beta.37起应用级参数被统一收敛到[app]段。当前该段包含两个核心选项配置项类型默认值最低版本PageSizeint10v2.0.0-beta.37JwtSecretstring安装时自动生成v2.0.0-beta.37在源码层面app段通过 settings/settings.go 中的sections有序映射注册到配置系统并通过envPrefixMap将段名APP映射为环境变量前缀NGINX_UI_APP_。这意味着这两个配置项既可以在app.ini中书写也可以通过环境变量注入二者效果等价。PageSize控制列表分页大小配置参数类型int默认值10适用版本 v2.0.0-beta.37该选项用于设置 Nginx UI 中列表分页的每页条目数。调整分页大小有助于更高效地管理大量数据但过大的数值会增加服务器负载。前端默认值溯源在前端系统设置仓库中page_size的初始值同样被定义为10与后端默认值保持一致const data refSettings({ app: { page_size: 10, jwt_secret: , }, // ... })代码位置app/src/views/preference/store/index.ts。后端类型定义与测试验证后端AppSettings.PageSize被声明为int类型并在 v1 配置迁移逻辑中完成赋值迁移PageSize int json:page_size protected:true代码位置settings/server_v1.go。对应迁移逻辑v2.App.PageSize v1.PageSize代码位置settings/server_v1.go。在 settings/settings_test.go 中测试断言迁移后PageSize为20在 api/settings/settings_test.go 中测试将PageSize设为50并验证设置接口的保存与读取行为。这印证了该配置项同时支持通过配置文件与 Web 设置接口SettingsAPI修改。配置方式方式一编辑app.ini配置文件[app] PageSize 10方式二设置环境变量export NGINX_UI_APP_PAGE_SIZE10两种方式可参考 docs/guide/env.md 中的环境变量映射表Nginx UI 支持NGINX_UI_前缀的环境变量覆盖配置文件。方式三通过 Web 界面登录 Nginx UI 后进入系统设置System Settings在 App 区域修改 Page Size 并保存。保存动作最终通过settings.Update/settings.Save调用持久化到配置文件相关实现见 settings/settings.go。注意事项分页参数对列表接口的负载有直接影响每页条目数越大单次查询返回的数据量越大数据库与传输层的开销也随之增加。对于动辄数百上千条站点、证书或日志条目的部署环境建议保持较小的分页值如默认的1050必要时结合筛选条件缩小结果集。JwtSecretJWT 签名密钥配置参数类型string适用版本 v2.0.0-beta.37该选项用于配置 Nginx UI 服务端生成 JWTJSON Web Token所使用的密钥。JWT 是验证用户身份的标准机制用户登录后服务端签发一个 token后续请求携带该 token 即可完成身份验证。密钥的生成时机一键安装脚本自动生成如果使用官方一键安装脚本部署 Nginx UI脚本会生成一个 UUID 值并写入该选项。对应后端安装流程中安装接口同样使用 UUID 作为密钥来源err : settings.Update(func() { cSettings.AppSettings.JwtSecret uuid.New().String() settings.NodeSettings.Secret uuid.New().String() settings.CertSettings.Email json.Email })代码位置api/system/install.go。安装跳过时的兜底生成当配置了跳过安装SkipInstallation且JwtSecret为空时内核初始化逻辑也会自动生成 UUID 填入if cSettings.AppSettings.JwtSecret { cSettings.AppSettings.JwtSecret uuid.New().String() }代码位置internal/kernel/skip_install.go。底层实现签发与校验JWT 的签发与校验均位于 internal/user/user.go可直接观察到JwtSecret的实际用途。签发HS256 对称签名登录成功后服务端以JwtSecret作为 HS256 签名密钥将用户名、用户 ID、过期时间等声明编码为 tokenunsignedToken : jwt.NewWithClaims(jwt.SigningMethodHS256, claims) signedToken, err : unsignedToken.SignedString([]byte(cSettings.AppSettings.JwtSecret))代码位置internal/user/user.go。JWT claims 中包含了Issuer: Nginx UI、Subject、ExpiresAt等标准字段internal/user/user.go。校验验签与解析后续请求携带 token 时ValidateJWT使用同一个密钥解析并验证签名token, err : jwt.ParseWithClaims(tokenStr, JWTClaims{}, func(token *jwt.Token) (interface{}, error) { return []byte(cSettings.AppSettings.JwtSecret), nil })代码位置internal/user/user.go。为什么 JwtSecret 至关重要JwtSecret是整个认证体系的信任根任何能够读取该密钥的人都可以伪造合法的登录 token。仓库中的安全测试也反复验证了这一点多个模块的security_test.go在测试前会临时替换JwtSecret为测试值以隔离环境并验证受保护接口在无有效 token 时拒绝访问例如 api/user/security_test.go、api/sites/security_test.go、api/streams/security_test.go 以及 api/backup/security_test.go。这说明 Nginx UI 的配置、站点、备份、流媒体等敏感接口全部由基于JwtSecret的 JWT 鉴权中间件保护。配置方式方式一编辑app.ini配置文件[app] JwtSecret 至少 32 位的随机字符串方式二设置环境变量export NGINX_UI_APP_JWT_SECRET至少 32 位的随机字符串方式三通过 Web 界面系统设置 → App → JWT Secret 可直接修改并保存。安全建议请勿使用弱密钥或在多台实例间复用同一密钥修改JwtSecret后所有已签发的 token 将立即失效所有用户需要重新登录。从旧版本迁移[server]段 →[app]段在引入[app]段之前这两个选项位于[server]段字段名为JwtSecret、PageSize。Nginx UI 提供了自动迁移能力详见 settings/server_v1.go读取旧配置中的[server]段若检测到jwt_secret非空判定为 v1 配置通过migrateToV2将旧字段映射到新段如v1.JwtSecret→v2.App.JwtSecret、v1.PageSize→v2.App.PageSize合并用户已有配置后原子写回app.ini先写.tmp文件再os.Rename见 settings/settings.go。对应的旧环境变量也会被自动迁移例如SERVER_JWT_SECRET→APP_JWT_SECRET、SERVER_PAGE_SIZE→APP_PAGE_SIZEsettings/server_v1.go。迁移时会在日志中提示用户尽快更新环境变量因为自动迁移可能在后续版本中移除。在恢复备份时也有对应处理JwtSecret属于需要特殊保护的敏感字段恢复流程会单独判断是否沿用当前值还是采用备份值相关逻辑见 settings/restore.go 及其测试 settings/restore_test.go。配置生效与文件位置默认配置文件路径为app.ini可通过启动参数--config指定其他路径见 internal/cmd/main.go。设置接口返回的 App 配置结构中已包含JwtSecret与PageSize见 api/settings/settings.go 与 api/settings/settings.go。环境变量统一使用NGINX_UI_前缀settings/settings.go解析逻辑基于env.ParseWithOptionssettings/settings.go完整映射表见 docs/guide/env.md。小结[app]配置段虽然只有两个选项却是 Nginx UI 正常运转的基础PageSize决定了大量数据场景下的列表展示效率与服务器负载平衡JwtSecret则是一切身份认证与接口安全的前提。两者均支持app.ini配置、NGINX_UI_APP_*环境变量和 Web 设置界面三种修改途径且对旧版[server]段配置具备自动迁移能力。部署完成后建议立即检查JwtSecret是否为安装脚本自动生成的强随机值避免使用默认或弱密钥带来的安全风险。赞分享后端前端运维MCP 服务【免费下载链接】nginx-uiYet another WebUI for Nginx项目地址https://gitcode.com/gh_mirrors/ngi/nginx-ui点击查看免费下载相关推荐Nginx UI App 配置段详解PageSize 分页大小与 JwtSecret 密钥的完整配置指南Nginx UI App 配置段详解PageSize 分页大小与 JwtSecret 密钥的完整配置指南 导读 本文以 Nginx UI 官方配置文档 doc后端前端运维MCP 服务Nginx UI 应用级配置详解PageSize 列表分页与 JwtSecret 令牌签名Nginx UI 应用级配置详解PageSize 列表分页与 JwtSecret 令牌签名 本指南围绕 Nginx UI 配置文件中 app 段下的两个核心配后端前端运维MCP 服务ESP32物联网开发实战Arduino-ESP32从零构建智能设备ESP32物联网开发实战Arduino ESP32从零构建智能设备 Arduino ESP32是Espressif官方支持的ESP32系列SoC的Arduin嵌入式物联网驱动开发创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
电路高端电流检测芯片:AD8217 电流检测芯片AD8217AD8217 Datasheet AD\Test\2026\September\TestAD8217Amp.SchDoc 【电流检测芯片:AD8217】 芯片来源
这些片芯片是前几天从一款无线充电模块中拆解下来的电流检测芯片, 他们是电流检测专用芯片, 可以对高端电流采样电阻上… · 2026/9/23 21:33:49
传统师承证哪家培训机构靠谱?从报名学习到考试拿证,报考全攻略 近两年,传统师承证的报考热度持续上升,想考的人不少,但绝大多数人卡在了同一个问题上:培训机构那么多,到底哪家靠谱?网上搜一圈,广告铺天盖地、说法互相矛盾,越看越不知道信谁。本文… · 2026/9/23 22:19:15
国内主流主数据管理平台推荐,2026年选型避坑指南 摘要
随着企业数智化转型步入深水区,主数据管理已从"锦上添花"变为"刚需基建"。数据编码不统一、一物多码、信息孤岛等问题持续困扰着集团型企业。本文聚焦2026年国内主数据管理平台市场,从技术架构、落地能力、行业适配等维度&… · 2026/9/23 22:19:09
人工智能训练工程师证哪家培训机构靠谱?从报名学习到考试拿证,报考全攻略 近两年,人工智能训练工程师证的报考热度持续上升,想考的人不少,但绝大多数人卡在了同一个问题上:培训机构那么多,到底哪家靠谱?网上搜一圈,广告铺天盖地、说法互相矛盾,越看越不知道… · 2026/9/23 22:19:09
微信小程序开发实战:案例4.6 image 组件不同显示模式详解 📌 前言
在微信小程序开发中,image 组件是使用频率最高的组件之一。它提供了多种图片缩放和裁剪模式(mode),以满足不同场景下的 UI 需求。本文将通过一个实战案例,演示如何在同一张图片上应用 14 种不同的显… · 2026/9/23 22:19:03
微信表情包怎么批量保存到相册?一次存一堆 微信表情包怎么批量保存到相册?微信本身没有一键批量保存的按钮,但你可以一次把好几个表情发给「表情保存助手」,它逐个回复下载地址,你逐个点「保存到手机」,就能一口气存一批,不用来回切换别的软件。一张… · 2026/9/23 22:18:56
专升本机构背后的“官方合作资源”到底有什么用? 一句话结论:官方合作资源对备考的实际价值有三点——信息更早、口径更准、路径更顺。它不替代个人努力,但能减少“方向性错误”的成本。一、先分清三种“合作”,别被说法绕晕说法真实含义对备考的实际影响产教融合合作与高校、企业、科研机构… · 2026/9/23 22:18:50
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29