用 WinSW 把 Nginx 注册为 Windows 服务,再也不用手动启动了 📅 2026/7/17 21:05:11 在 Windows 上部署 Nginx很多人的习惯是每次开机手动双击nginx.exe启动或者写个批处理丢到启动项里。这种方式不够优雅机器重启后还容易忘记启动导致服务中断。有没有更好的方式有——用WinSW把 Nginx 注册成 Windows 系统服务开机自动启动和 IIS、SQL Server 一样丝滑。什么是 WinSWWinSWWindows Service Wrapper是一个开源工具可以把任意可执行程序包装成 Windows 服务。只需要一个.exe 一个.xml配置文件几条命令搞定。GitHub 地址https://github.com/winsw/winsw/releaseshttps://github.com/winsw/winsw/releases准备工作1. 下载 WinSW进入 GitHub Releases 页面滚动下去下载v2.x 稳定版推荐 v2.12.0选择WinSW-x64.exe。2. 重命名并放置文件将下载的WinSW-x64.exe重命名为nginx-service.exe放到 Nginx 根目录下与nginx.exe平级D:\nginx-1.28.0\ ├── nginx.exe ├── nginx-service.exe ← WinSW改名后放这里 ├── logs\ └── conf\文件名前缀必须和后面的 xml 配置文件一致WinSW 会自动匹配同名的 xml 文件。创建配置文件在同目录下新建nginx-service.xml内容如下service idnginx/id nameNginx/name descriptionNginx HTTP Server/description executableD:\nginx-1.28.0\nginx.exe/executable logpathD:\nginx-1.28.0\logs/logpath logmoderoll/logmode startmodeAutomatic/startmode stopexecutableD:\nginx-1.28.0\nginx.exe/stopexecutable stoparguments-s stop/stoparguments /service配置说明字段说明id服务唯一标识用于命令行操作name服务显示名称在服务管理器中可见executableNginx 可执行文件完整路径logpathWinSW 日志输出目录logmoderoll表示日志滚动避免文件过大startmodeAutomatic表示开机自动启动stopexecutable停止服务时执行的程序stoparguments停止参数-s stop是 Nginx 的优雅停止命令此时目录结构变为D:\nginx-1.28.0\ ├── nginx.exe ├── nginx-service.exe ├── nginx-service.xml ← 新增 ├── logs\ └── conf\注册并启动服务以管理员身份打开 CMD执行以下命令cd D:\nginx-1.28.0 # 注册服务 nginx-service.exe install # 启动服务 net start nginx注册成功后会看到类似输出2026-07-14 20:15:51,397 INFO - Installing the service with id nginx验证服务状态按Win R输入services.msc打开服务管理器找到Nginx服务状态为「正在运行」即表示成功。常用管理命令# 启动 net start nginx # 停止 net stop nginx # 卸载服务 nginx-service.exe uninstall总结整个流程只需三步下载 WinSW改名为nginx-service.exe放入 Nginx 目录同目录创建nginx-service.xml配置文件管理员 CMD 执行installnet start nginx从此 Nginx 和系统服务一样开机自启、后台运行再也不用手动维护了。如果你的服务器上还有其他需要注册为 Windows 服务的程序比如自己写的 .NET 应用、Redis、MinIOWinSW 同样适用换个名字和路径配置即可。