推荐使用 nginx-service.exe 将 Nginx 注册为 Windows 服务实现开机自启:下载该工具放入 C:\nginx,管理员运行 nginx-service.exe -i -n "Nginx Web Server" -d "C:\nginx",再于服务管理器设启动类型为“自动”。

在 Windows 上让 Nginx 以 Windows 服务方式运行,并实现开机自动启动,能显著提升部署稳定性与运维便利性。关键在于不依赖第三方工具(如 srvany),而是使用 Nginx 官方推荐的轻量方案:借助 nginx-service.exe(由社区维护、广泛验证的原生服务封装工具)或通过 Windows 自带的 sc 命令配合批处理脚本实现可靠注册。
准备可服务化的 Nginx 环境
确保你已下载并解压标准版 Nginx(如 nginx-1.24.0),路径不含中文和空格(推荐如 C:\nginx)。修改 conf/nginx.conf 中的 pid 和 error_log 路径为绝对路径,例如:
pid C:/nginx/logs/nginx.pid;error_log C:/nginx/logs/error.log notice;
同时确认 logs 目录存在且有写入权限。可先双击 nginx.exe 手动启动一次,访问 http://localhost 验证服务正常,再关闭进程(nginx -s stop)。
使用 nginx-service.exe 注册为系统服务(推荐)
这是目前最简洁、兼容性最好的方式。前往 GitHub 项目 szerg/nginx-service 下载最新 nginx-service.exe(无需编译),将其放入 C:\nginx 目录下。
- 以管理员身份打开命令提示符(CMD 或 PowerShell)
- 执行注册命令:
C:\nginx> nginx-service.exe -i -n "Nginx Web Server" -d "C:\nginx" - 参数说明:
-i安装服务,-n指定服务显示名称,-d指定 Nginx 根目录
注册成功后,在「服务」管理器(services.msc)中即可看到 Nginx Web Server,可右键启动/停止,属性中设置“启动类型”为“自动”即完成开机自启。
手动用 sc 命令注册(无额外工具依赖)
若倾向使用系统原生命令,可创建一个简易启动脚本 start_nginx.bat(放在 C:\nginx):
@echo off cd /d C:\nginx start nginx.exe
然后以管理员身份运行:
sc create NginxService binPath= "C:\Windows\System32\cmd.exe /c C:\nginx\start_nginx.bat" start= auto obj= "LocalSystem" depend= Tcpip- 注意等号后有空格,
binPath=后是完整命令行,start= auto表示开机自启 - 执行
sc start NginxService测试启动
此方法需确保脚本稳定(建议加日志重定向),且 Nginx 进程不会因 CMD 窗口关闭而退出(start 已解决该问题)。
验证与日常管理
无论哪种方式,都可通过以下方式确认效果:
- 重启系统后,打开任务管理器 → 「详细信息」页,查找
nginx.exe进程 - 浏览器访问
http://localhost,应正常返回欢迎页 - 运行
sc query NginxService(或对应服务名),状态为RUNNING
日常操作建议使用服务管理器或命令:sc start NginxService|sc stop NginxService|sc delete NginxService










