Windows下将nginx配置成服务并设置开机自启动
本文由 小茗同学 发表于 2017-05-27 浏览(20903)
最后修改 2017-06-22 标签:nginx windows server

概述

一般有2种方法,推荐第二种。

方法一(创建服务)

我们使用Windows Service Wrapper来为nginx创建服务,为什么不使用instsrv/servanyFireDaemon或者其他办法呢?

下面是网上摘录的一段话:

通过 instsrv/srvany(微软官方创建服务的方法) 或者 FireDaemon 的方式(来创建 Nginx 为服务),只是启动进程,当你想要停止它时,将关闭这个进程。但这些方式都无法关闭多余的那个 nginx.exe 进程。所以每次你停止/启动/重启服务都会产生一个多余的 nginx.exe 进程,不方便!

从网上下载一个Windows Service Wrapper(winsw.exe),然后复制到nginx根目录,可以随意改名字,比如我改成nginx-server.exe,然后新建一个xml文件(文件名比如和exe同名,比如我的叫nginx-server.xml),内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<service>
	<id>nginx</id>
	<name>nginx</name>
	<description>nginx server</description>
	<executable>D:\GreenSoft\nginx-1.11.8\nginx.exe</executable>
	<logpath>D:\GreenSoft\nginx-1.11.8\server-logs\</logpath>
	<logmode>roll</logmode>
	<depend></depend>
	<startargument>-p D:\GreenSoft\nginx-1.11.8</startargument>
	<stopargument>-p D:\GreenSoft\nginx-1.11.8 -s stop</stopargument>
</service>

上面的logpath指的是服务的日志,记得先手动建一个server-logs文件夹,然后执行nginx-server install就会安装成功了!我一般还习惯去服务里面把它改成延迟启动:

方法二

方法一有一个很大的缺点,就是这种方式启动之后调用nginx -s reload命令失效,所以后来我采用了另外一种更简单的方法:

发送一个nginx的快捷方式到桌面,然后把这个快捷方式移动到如下目录即可实现开机自启(注意将Administrator更改为自己的用户名)!

C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup