windows下想启动nginx是很简单的,双击nginx.exe就搞定了。可如何实现开机启动呢,尤其是在windows的server服务器上,开机启动很重要。思路就是将其做成系统服务,然后随系统启动。需要借助“Windows Service Wrapper”这个小工具将nginx做成服务实现开机启动,废话不多说,看下面方案。

一、下载稳定版nginx

下载地址:nginx: download,下载稳定版,也就是Stable version。

二、下载winsw.exe

这是一个将nginx进行服务化的一个工具。发文此刻最新版本是2.1.2,下载地址:http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/2.1.2/winsw-2.1.2-bin.exe

这个工具在github上有专门的项目地址,有兴趣的可以看下:https://github.com/kohsuke/winsw

winsw-2.1.2-bin.exe文件很小,只有352kb,下载下来后将其复制到nginx根目录,并重命名为nginx-service.exe

三、创建两个配置文件:nginx-service.xml、nginx-service.exe.config

nginx-service.xml内容如下:

<service>
	<!-- 服务名 -->
	<id>nginx</id>
	<!-- 显示名称 -->
	<name>Nginx Service</name>
	<!-- 描述 -->
	<description>High Performance Nginx Service</description>
	<logpath>D:\Program Files (x86)\nginx-1.14.0\logs</logpath>
	<log mode="roll-by-size">
		<sizeThreshold>10240</sizeThreshold>
		<keepFiles>8</keepFiles>
	</log>
	<executable>D:\Program Files (x86)\nginx-1.14.0\nginx.exe</executable>
	<startarguments>-p D:\Program Files (x86)\nginx-1.14.0</startarguments>
	<stopexecutable>D:\Program Files (x86)\nginx-1.14.0\nginx.exe</stopexecutable>
	<stoparguments>-p D:\Program Files (x86)\nginx-1.14.0 -s stop</stoparguments>
</service>

这是一个服务相关的核心文件,指明了服务名称、显示名称、描述信息、参数信息等,大家记得把上面的路径换成自己的。

nginx-service.exe.config内容如下:

<configuration>
	<startup>
		<supportedRuntime version="v2.0.50727" />
		<supportedRuntime version="v4.0" />
	</startup>
	<runtime> 
		<generatePublisherEvidence enabled="false"/>
	</runtime>
</configuration>

这个文件是为支持NET 4.0 runtime,默认只支持NET 2.0 runtime。

上面的工作都完成之后,整体的目录结构是这样的。

四、注册服务

管理员权限打开cmd,进入nginx根路径,然后执行命令:nginx-service.exe install。如图:

服务注册完成后就可以去系统服务里面找到这个服务了,然后点击开启,默认已经是自启动了,如果不是自己手动调整启动类型。如图:

 

五、服务管理

1.利用工具自身的命令管理

nginx-service.exe install #服务安装,上面已经用过了
nginx-service.exe start #开启服务
nginx-service.exe stop #关闭服务
nginx-service.exe restart #重启服务
nginx-service.exe uninstall #卸载服务

2.既然已经注册为服务了,除了可以手动开启关闭也可以使用dos命令来操作。

net start nginx  #启动服务
net stop nginx #关闭服务

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐