【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 命令?

相关推荐
网硕互联的小客服15 小时前
各个版本的Linux系统如何修改远程端口ssh端口?
linux·运维·服务器·网络
Mr小林17 小时前
Docker 安装教程(在线 + 离线)
运维·docker·容器
JudithHuang18 小时前
把本地服务暴露到公网
运维
yt004yt18 小时前
### 越华环保集团|绿岛 VOCs 集中治理,管网系统安全设计工程实战分享
大数据·运维
yt004yt18 小时前
越华环保集团|绿岛 VOCs 集中治理,管网系统安全设计工程实战分享
大数据·运维
晚安日记wanna19 小时前
压测 TPS 卡在 800CPU 只跑四成六步定位法
运维·面试·测试
吴声子夜歌20 小时前
Shell编程实例——bash入门
linux·运维·shell
爱和冰阔落20 小时前
【Linux】条件变量为什么必须配合互斥锁:从 pthread_cond_wait 到阻塞队列
linux·运维·c++·缓存·中间件·安卓
星间都市山脉20 小时前
Android16 SystemService.onBootPhase 调用时机
android·java·linux·windows·ubuntu
ynchyong20 小时前
Linux nohup 后台服务合并标准错误输出到一个文件
java·linux·运维