nginx注册成windows服务的解决方法


nginx注册成windows服务的解决方法

文章插图
 
之前尝试过将Nginx注册成windows服务 , 有用过微软官方的instsrv/srvany ,  以及firedaemon ,  虽然可以做服务并启动 , 但是当你想要停止服务时 , 就会出现问题 。主要原因在于nginx有一个守护进程 , 上述的方式只能关闭主进程 , 多余的进程没法关闭 。因此每当用上述的方式时 , 每次停止/重启服务 , 都会产生一个多余的nginx进程 。非常的不好!
后来发现一个很好的项目:winsw, 可以将可执行文件注册成windows服务 , 项目的github地址是 https://github.com/kohsuke/winsw
它的介绍是:A wrApper executable that can be used to host any executable as an Windows service, in a liberal license
用它将nginx注册成服务后 , 完美解决上述的问题 , 使用起来也很简单 , 根据.Net Framework的版本 , 下载对应的支持版本 , 然后修改配置文件 , 再使用对应的指令安装即可 。
配置文件的格式如下 , 
nginx注册成windows服务的解决方法

文章插图
 
【nginx注册成windows服务的解决方法】如果是要部署多个nginx服务 , 保证id和name保持唯一
根据实际情况进行修改 , 然后用管理员权限 , 在当前目录的控制器台中执行
WinSW.NET4.exe install 进行服务安装 。
成功后 , 在操作系统的服务列表中 , 就可以看到对应的服务了
nginx注册成windows服务的解决方法

文章插图
 
重启服务和关闭服务 , 整体表现符合预期 , 而且系统里也没有多余的进程.




    推荐阅读