【windows】nginx如何注册为开机自启的服务(WinSW实现)

1. ‌下载 WinSW‌

访问官方 GitHub 发布页:
https://github.com/winsw/winsw/releases

下载最新稳定版(如 WinSW-x64.exe),建议重命名为 nginx-service.exe,便于识别。

复制代码
# 示例:将下载的文件重命名
mv WinSW-x64.exe nginx-service.exe

WinSW 是单文件可执行程序,无需安装,直接使用。

2. ‌创建配置文件 nginx-service.xml‌

在同一目录下创建 nginx-service.xml,内容如下:

html 复制代码
<service>
  <id>nginx</id>
  <name>Nginx Web Server</name>
  <description>High-performance web server with reverse proxy capabilities</description>

  <executable>C:\nginx\nginx.exe</executable>
  <workingdirectory>C:\nginx</workingdirectory>
  <logmode>rotate</logmode>

  <onfailure action="restart" delay="10 sec"/>
  <resetfailure>1 hour</resetfailure>

  <startmode>Automatic</startmode>
  <stopmode>Automatic</stopmode>

  <logpath>C:\nginx\logs</logpath>
  <logmode>roll</logmode>
  <depend>Tcpip</depend>
</service>

关键配置说明:

<id>:服务唯一标识符(必须唯一)

<executable>:Nginx 主程序路径(请确保路径正确)

<workingdirectory>:工作目录,确保 Nginx 能正确加载配置
<startmode>Automatic</startmode>:‌实现开机自启的核心配置‌
<logpath>:指定日志输出目录,便于排查问题

3. ‌安装服务‌

以‌管理员身份‌打开命令提示符(CMD)或 PowerShell,执行:

javascript 复制代码
cd C:\nginx
nginx-service.exe install

成功后会输出:Service installed successfully.

4. ‌启动服务并验证‌

yaml 复制代码
net start nginx
sc query nginx

检查状态是否为 RUNNING,并打开 services.msc,确认:

yaml 复制代码
服务名称‌:Nginx Web Server
启动类型‌:自动
状态‌:已启动

访问 http://localhost,确认页面正常加载。

5. ‌卸载服务‌

yaml 复制代码
nginx-service.exe uninstall

日志与故障排查

WinSW 会自动生成日志文件在 C:\nginx\logs\ 目录下,文件名为:

nginx-service.out.log:标准输出

nginx-service.err.log:错误输出

若服务无法启动,请检查:

Nginx 配置是否正确:

yaml 复制代码
C:\nginx\nginx.exe -t

路径是否包含空格或中文?建议使用 C:\nginx 这类简洁路径。

是否以管理员身份运行 install 命令?

相关推荐
JZC_xiaozhong9 小时前
数据不互通、审批慢?企业多系统智能协同与流程自动化解决方案
运维·自动化·流程管理·流程自动化·数据集成与应用集成·流程监控·流程可视化设计
爱学习的小囧10 小时前
ESXi 8.0 原生支持 NVMe 固态硬盘吗?VMD 配置详解教程
linux·运维·服务器·esxi·esxi8.0
坚持就完事了10 小时前
Linux中的变量
linux·运维·服务器
hERS EOUS10 小时前
nginx 代理 redis
运维·redis·nginx
Cat_Rocky10 小时前
利用Packet Tracer网络实验
linux·运维·服务器
嵌入式×边缘AI:打怪升级日志11 小时前
Linux 驱动实战:SR501 人体红外传感器驱动开发与调试全记录
linux·运维·驱动开发
正点原子11 小时前
【正点原子Linux连载】第三章 U-Boot使用 摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南
linux·运维·驱动开发
忍冬行者11 小时前
MongoDB 三节点副本集离线部署运维手册
运维·数据库·mongodb
爱学习的小囧11 小时前
ESXi VMkernel 端口 MTU 最佳设置详解
运维·服务器·网络·php·虚拟化
NoSi EFUL12 小时前
redis存取list集合
windows·redis·list