推荐使用 nssm 是因其轻量稳定、能正确处理 Nginx 的 master-worker 进程模型,自动拉起崩溃子进程,支持标准服务控制且无需修改源码或依赖 .NET。

Windows 本身不原生支持 Nginx 作为系统服务运行,但通过 nssm(Non-Sucking Service Manager) 可以将其可靠地注册为 Windows 服务,实现开机自启、后台静默运行和统一服务管理。
为什么推荐用 nssm 而不是其他方式
nssm 是轻量、稳定、开源的 Windows 服务封装工具,相比 sc 命令或第三方脚本,它能正确处理 Nginx 的进程模型(master-worker)、自动拉起崩溃子进程、支持标准服务控制(启动/停止/重启),且无需修改 Nginx 源码或依赖 .NET 环境。
安装与配置 nssm
- 前往 https://nssm.cc/download 下载最新版 nssm(如 nssm-2.24.zip),解压后找到
nssm.exe(推荐放在C:\nssm\) - 以管理员身份打开命令提示符或 PowerShell,执行:
nssm install nginx(服务名可自定义,如 nginx-prod) - 弹出图形界面后,按以下关键项填写:
-
Path:指向你的
nginx.exe,例如C:\nginx\nginx.exe -
Startup directory:填 Nginx 安装根目录,例如
C:\nginx\(确保 conf、logs 等路径能被正确识别) - Service name:保持默认或自定义(如 nginx)
- Service description:可选,如 “High-performance HTTP server”
- Details → Exit actions → On failure:建议勾选 “Restart service”,并设延迟 5 秒
-
Path:指向你的
关键注意事项与调优
- Nginx 配置中不要启用
daemon off;—— nssm 要求主进程前台运行,而默认 Nginx 在 Windows 下本就是前台模式,无需改动 - 确保
nginx.conf中的pid和error_log路径使用绝对路径,避免权限或路径解析问题,例如:pid C:/nginx/logs/nginx.pid;error_log C:/nginx/logs/error.log error; - 若启动失败,先在命令行手动运行
C:\nginx\nginx.exe测试是否正常;再查看 Windows 事件查看器 → Windows 日志 → 应用程序,筛选“nssm”或“nginx”相关错误 - nssm 默认以 LocalSystem 账户运行,如需访问网络路径或特定用户配置,可在 “Log On” 页签切换为指定用户账户(需赋予“登录为服务”权限)
日常管理命令
- 启动服务:
net start nginx或在“服务”管理器中操作 - 停止服务:
net stop nginx - 重新加载配置(不中断连接):
nssm restart nginx或先nginx -s reload(需确保 nginx.exe 在 PATH 中,或进入目录执行) - 卸载服务:
nssm remove nginx confirm










