Nginx添加win系统服务
Nginx 原生并不支持直接作为 Windows 服务运行,它只是一个普通的可执行程序。要实现开机自启并作为后台服务稳定运行,最成熟且常用的方法是使用第三方工具 WinSW (Windows Service Wrapper) 将其包装成 Windows 服务。
以下是具体操作步骤:
第一步:准备文件
下载 WinSW:
从 GitHub 下载 WinSW 的最新 release 版本(通常是一个 .exe文件和一个 .xml配置文件模板)。
放置文件:
将下载的 winsw.exe 和 winsw.xml 复制到你的 Nginx 安装根目录下(例如 D:\nginx)。
重命名文件:
为了管理方便,建议将它们重命名为与 Nginx 相关的名字,例如:
winsw.exe -> nginx-service.exe
winsw.xml -> nginx-service.xml
第二步:配置 XML 文件
编辑 nginx-service.xml 文件,内容如下(请根据你的实际路径修改):
xml<service> <id>nginx</id> <name>Nginx Service</name> <description>High Performance Nginx Service</description> <logpath>D:\nginx\logs</logpath> <log mode="roll-by-size"> <sizeThreshold>10240</sizeThreshold> <keepFiles>8</keepFiles> </log> <executable>D:\nginx\nginx.exe</executable> <startarguments>-p D:\nginx</startarguments> <stopexecutable>D:\nginx\nginx.exe</stopexecutable> <stoparguments>-p D:\nginx -s stop</stoparguments></service>
注意:路径中不要包含中文或空格,建议使用正斜杠 / 或双反斜杠 \\。
第三步:安装并启动服务
以管理员身份打开 PowerShell 或 CMD,进入 Nginx 目录,执行以下命令:
安装服务:
powershell.\nginx-service.exe install
如果提示成功,你可以在 Windows 的“服务”管理器(运行 services.msc)中看到名为 "Nginx Service" 的服务。
启动服务:
powershell.\nginx-service.exe start
或者直接在“服务”管理器中右键点击该服务选择“启动”。
设置开机自启:
在“服务”管理器中,双击该服务,将“启动类型”改为 “自动”。这样每次开机 Nginx 就会自动作为后台服务运行,无需任何黑窗口。
常用管理命令
卸载服务:.\nginx-service.exe uninstall
重启服务:.\nginx-service.exe restart
查看状态:.\nginx-service.exe status
替代方案:使用 NSSM
如果你觉得 WinSW 配置稍显复杂,也可以使用 NSSM (Non-Sucking Service Manager),它是一个更轻量级的工具:
下载 nssm.exe。
以管理员身份运行:
powershell
nssm install NginxService
在弹出的 GUI 界面中:
Application 标签页:
Path: D:\nginx\nginx.exe
Startup directory: D:\nginx
Arguments: -p D:\nginx
Shutdown 标签页:
勾选 "Console application",并在 Stop method 中选择 "Terminate process tree" 或配置停止命令 nginx.exe -s stop。
点击 "Install service" 即可。
这两种方法都能完美解决 Nginx 在 Windows 下无法原生作为服务运行的问题,推荐优先使用 WinSW,因为它与 Java 生态兼容性好且维护活跃。

浙公网安备 33010602011771号