ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

NocoBase CLI `nb proxy nginx status` 命令详解:查看 Nginx 代理运行状态

2026/9/13 23:30:25 拓冰建站 浏览量
NocoBase CLI `nb proxy nginx status` 命令详解:查看 Nginx 代理运行状态 NocoBase CLInb proxy nginx status命令详解查看 Nginx 代理运行状态【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobasenb proxy nginx status是 NocoBase CLI 中用于查看当前 Nginx 反向代理运行状态的核心命令它会基于当前选中的 driverlocal或docker输出代理进程状态、配置文件位置以及运行环境等关键信息。读完本文你将掌握该命令的用法、每个输出字段的含义与取值、不同 driver 下的输出差异以及它背后的源码级状态检测原理并能将其嵌入 Nginx 代理的日常运维与排障流程。命令背景nb proxy nginx命令组在 NocoBase 的 CLI 体系中nb proxy nginx是 Nginx provider 的命令组入口源码见 index.ts。它负责两件事选择 Nginx 的运行方式即local本机直接运行 Nginx 进程或docker以容器方式运行 Nginx为 CLI 托管的 env 生成、启动、重载和检查 Nginx 入口。status命令是这一命令组中的状态观察节点与use、current、generate、start、restart、reload、stop、info等命令协同工作。一个典型的运维流程是nb proxy nginx use docker nb proxy nginx generate --env app1 --host app1.example.com nb proxy nginx start nb proxy nginx status nb proxy nginx infostatus用于在启动、重载之后确认代理是否真正处于运行状态是排障时最先执行的检查命令。命令用法nb proxy nginx status该命令无需任何参数直接读取当前配置并输出一行行键值对信息。命令实现非常简洁见 status.tspublic async run(): Promisevoid { await this.parse(ProxyNginxStatus); const runtimeContext await resolveNginxProxyRuntimeContext(); const status await getNginxProxyStatus(runtimeContext); this.log(formatNginxProxyStatusLines(status).join(\n)); }其执行链路是先通过resolveNginxProxyRuntimeContext()解析当前运行上下文包括 driver、CLI 根目录、upstream host再调用getNginxProxyStatus()采集状态最后用formatNginxProxyStatusLines()格式化为文本输出。输出字段详解命令通常会输出以下信息其中driver、status、config三项固定存在最后一项根据 driver 不同而表现为nginx或container源码见 proxy-nginx.tsdriver: local|docker status: running|stopped config: nginx 主配置文件路径 nginx: nginx 可执行文件路径 # 仅 local driver或driver: docker status: running config: /apps/.nocobase/proxy/nginx/nocobase.conf container: docker.container-prefix-nginx-proxy image: nginx:latest各字段含义如下字段可能取值说明driverlocal、docker当前 Nginx 代理的运行方式来源于配置项proxy.nginx-driver默认值为local见 cli-config.tsstatusrunning、stopped代理当前是否在运行由state字段映射而来config文件路径Nginx 主配置文件的输出位置对应resolveEnvProxyMainOutputPath()的结果并映射到运行时根目录nginxlocal 时可执行文件路径bin.nginx配置项指定的 Nginx 可执行文件默认值为nginxcontainerdocker 时容器名容器名默认格式为docker.container-prefix-nginx-proxyimagedocker 时镜像名固定使用nginx:latest其中driver的可选值在源码中被定义为[local, docker]且proxy.nginx-driver配置项在写入时会做严格校验非法值会直接报错见 cli-config.ts。两种 driver 下的状态判定逻辑status的核心是getNginxProxyStatus()函数见 proxy-nginx.ts它会根据 driver 走两条完全不同的检测路径local driverPID 文件探测进程当 driver 为local时命令会解析 Nginx 版本输出得到 PID 文件路径resolveLocalNginxPidPath()读取 PID 文件解析出整数 PID通过process.kill(pid, 0)探测进程是否存在见 proxy-nginx.ts。若 PID 无效或进程不存在则判定为stopped否则为running。此外还会读取bin.nginx配置项输出 Nginx 可执行文件路径。这种方式不依赖 Nginx 自身的状态接口仅通过系统进程信号探测轻量且可靠。docker driver容器运行态探测当 driver 为docker时命令会解析容器名resolveNginxProxyContainerName()格式为docker.container-prefix-nginx-proxy通过dockerContainerIsRunning(containerName)检查容器是否处于运行态见 proxy-nginx.ts额外输出container容器名与image固定为nginx:latest字段。docker driver 下config字段输出的路径以容器内运行时根目录/apps为基准DOCKER_NGINX_PROXY_RUNTIME_ROOT /apps因为 Docker driver 会把宿主机NB_CLI_ROOT挂载到容器内/apps配置文件随之映射为容器内路径。实际运行示例场景一本地 Nginx 代理正在运行$ nb proxy nginx status driver: local status: running config: /Users/alice/.nocobase/proxy/nginx/nocobase.conf nginx: /usr/sbin/nginx场景二Docker 容器代理已启动$ nb proxy nginx status driver: docker status: running config: /apps/.nocobase/proxy/nginx/nocobase.conf container: nb-nginx-proxy image: nginx:latest以上输出形态与仓库测试用例中的断言一致见 proxy-nginx-command.test.ts测试中同样覆盖了driver: local、status: running、config: /apps/.nocobase/proxy/nginx/nocobase.conf以及nginx: /usr/sbin/nginx等典型行。场景三代理未启动若本地 Nginx 未启动或 Docker 容器已停止status字段会显示stopped$ nb proxy nginx status driver: local status: stopped config: /Users/alice/.nocobase/proxy/nginx/nocobase.conf nginx: nginx此时可以结合nb proxy nginx start启动代理再次执行nb proxy nginx status验证是否转为running。使用建议与排障思路先status后infostatus关注进程/容器是否在运行info关注driver、配置路径等静态信息。排障时先用status确认运行态再用info核对 driver 与路径是否与预期一致。driver 不匹配时的表现status的输出完全取决于proxy.nginx-driver配置。如果此前通过nb proxy nginx use docker切换了 driver但实际容器未启动status会如实显示driver: docker与status: stopped可通过nb proxy nginx start拉起容器。配置文件路径核对config字段指向 Nginx 主配置文件若代理状态为running但站点访问异常可以沿该路径检查生成的 Nginx 配置内容是否正确。相关命令nb proxy nginx— Nginx provider 命令组入口nb proxy nginx use— 切换 Nginx driverlocal/dockernb proxy nginx info— 查看 driver、配置路径与运行信息nb proxy nginx start— 启动 Nginx 代理nb proxy nginx stop— 停止 Nginx 代理nb proxy nginx reload— 重载 Nginx 配置nb proxy nginx restart— 重启 Nginx 代理nb proxy— 代理命令组总入口支持 nginx 与 caddy 两种 provider相关源码文件命令实现位于 status.ts核心状态采集与格式化逻辑位于 proxy-nginx.tsdriver 配置解析位于 cli-config.ts行为验证可参考 proxy-nginx-command.test.ts。【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考