乐趣区

关于nginx:Windows-下-Nginx-开机自启动

引子

最近常常用到 Nginx,每次开机要手动启动一下,想设置为开机主动执行 start nginx,找了下材料尝试后总结一下。

  • 零碎:Windows 10 家庭中文版
  • 版本号:20H2
  • 操作系统版本:19042.685
  • nginx:版本 1.18.0,只配置了端口和 root 字段。
  • Origin
  • My GitHub

解决形式

Windows 能够通过手动批改注册表设置启动项,感觉有些麻烦,还是找个工具。找到工具 WinSW,它能够将任何利用包裹并作为一个 Windows 服务治理。在这里能够下载编译好的可执行文件。本次应用的版本是 WinSW v3.0.0-alpha.7。

WinSW 作为一个全局工具应用:

  1. 下载 WinSW.exeWinSW.zip
  2. 新建 myapp.xml(更具体阐明见文档和示例)。
  3. 运行 winsw install myapp.xml [options] 装置服务。
  4. 运行 winsw start myapp.xml 开启服务。
  5. 运行 winsw status myapp.xml 查看服务是否启动和运行。

在实际操作过程中发现了其它留神点:

  • 输出命令时参数 myapp.xml 并不是必须,想要省略,让配置文件名称跟 WinSW.exe 文件的名称统一即可,否则不带配置文件名称参数会报错。
  • WinSW.exe 文件须要搁置在 nginx 装置目录下,否则执行指令的时候会提醒找不到 nginx 的配置文件。
  • 出谬误的时候,会输入日志,看日志有助于排查问题。

上面是集体配置步骤示例。

第 1 步

将下载的 exe 文件挪动到 nginx 目录下,重命名为 winsw.exe , 新建配置文件 winsw.xml,写入上面的配置:

<service>
  <id>nginx service</id>
  <name>Nginx</name>
  <description>This service runs Nginx.</description>
  <env name="NGINX_COMIC" value="%BASE%" />
  <prestart>start D:\nginx-1.18.0\nginx.exe</prestart>
  <executable>D:\nginx-1.18.0\nginx.exe</executable>
  <prestop>D:\nginx-1.18.0\nginx.exe -s stop</prestop>
  <log mode="roll" />
  <onfailure action="none" />
</service>

第 2 步

在以后门路下关上命令窗口(以后文件门路上输出 cmd 回车即可), 执行命令:

winsw install

胜利会呈现上面的提醒:

查看是否胜利增加了服务,“此电脑”右键 ->“治理”->“服务和应用程序”->“服务”:

第 3 步

检测启动服务是否失常:

winsw start

启动胜利也会呈现提醒。拜访 nginx 配置的地址,确认是否无效。确认后,重启电脑,看下是否会自启动。

参考资料

  • winsw Github
退出移动版