nginx学习:nginx变成Windows服务

通过Windows Service Wrapper将自身注册为Windows标准服务
一、官方主页:https://github.com/kohsuke/winsw/
当前最新版本为:winsw-2.0.1-bin.exe。下载地址:http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/2.0.1/winsw-2.0.1-bin.exe
二、具体操作
我们将nginx注册为Windows服务。
总之来说,Windows Service Wrapper需要新建被包装的程序的配置文件
1、重命名WinSW.NET4.exe为任意名称,比如nginx-service.exe
2、新建nginx服务配置文件,比如nginx-service.xml
注意:命名为nginx-service.xml,必须与nginx-service.exe重命名的文件名一致。
如图:在这里插入图片描述
配置文件内容如下:

<service>
	<id>nginx</id>
	<name>Nginx Service</name>
	<description>Nginx Service</description>
	<logpath>E:\nginx-1.18.0\logs</logpath>
	<log mode="roll-by-size">
		<sizeThreshold>10240</sizeThreshold>
		<keepFiles>8</keepFiles>
	</log>
	<executable>E:\nginx-1.18.0\nginx.exe</executable>
	<startarguments>-p E:\nginx-1.18.0</startarguments>
	<stopexecutable>E:\nginx-1.18.0\nginx.exe</stopexecutable>
	<stoparguments>-p E:\nginx-1.18.0 -s stop</stoparguments>
</service>

3、注册服务

以管理员身份运行cmd,输入:E:\nginx-1.18.0\nginx-service.exe install,回车,提示安装服务完成。

4、卸载

以管理员身份运行cmd,输入:E:\nginx-1.18.0\nginx-service.exe uninstall,回车,提示卸载服务完成。

5、注意

经常通过Windows重启Nginx Service服务,但子进程并没有关闭,导致配置不能更新(特别是修改nginx.conf)。

若碰到这种这种情况,需要使用任务管理器手动关闭nginx.exe。

6、报错

一直报这个错FATAL - WMI Operation failure: AccessDenied
打开cmd的时候,改成 以管理员身份运行 就可以了。
三、总结

1、经过使用后发现,Windows服务内注册的服务路径不是被委托程序,而是winsw.exe。所以每一个服务封装,都必须考虑一份独立的winsw.exe,原因如此。

四、nginx常用命令
进入nginx根目录

1.启动nginx start nginx

2.停止nginx nginx -s stop (stop表示立即停止nginx,不保存相关信息)

3.停止nginx nginx -s quit (quit 表示正常退出nginx,并保存相关信息)

4.重启nginx nginx -s reload

5.查看配置是否正常 nginx -t

如果nginx服务关掉后,页面还能访问可以参考文章:
https://editor.csdn.net/md/?articleId=111385398
本文参考文章:
https://blog.csdn.net/bitree1/article/details/100559530
https://www.cnblogs.com/huiy/p/12459356.html

猜你喜欢

转载自blog.csdn.net/weixin_41812784/article/details/110824860