虽然使用命令行控制ngix很简单,可是若是做为一个服务工做的话能更方便地启动、中止或者设置依赖项。html
这里使用开源项目Windows Service Wrapper 来实现。nginx
github下载地址:https://github.com/kohsuke/winsw/releasesgit
.netframework2.0 选择 WinSW.NET2.exe github
.netframework4.0 选择WinSW.NET4.exewindows
这里选择 WinSW.NET4.exe浏览器
第一步:bash
下载WinSW.NET4.exe,放至待包装的exe文件夹中,这里就是nginx.exe所在的目录,并修更名字为“nginxservice.exe”app
在nginxservice.exe同目录中新建一个同名的xml文件post
修改xml文件内容,格式可参考下载列表里的xml范例url
这里参考最简单的sample-minimal.xml
修改成真实内容
安装服务
d:\nginx\nginxservice.exe install
安装完成后后在服务里查看到该服务 nginxservice,至此服务安装完成
启动该服务,而后在浏览器中输入地址和原先以控制台指令执行结果运行一致 表明执行成功
卸载服务指令
nginxservice.exe uninstall 或者使用 sc delete 服务名称
其它:
exe目录下存在运行日志可供查看运行内容
常见问题:
1.删除服务时出现“服务已被标记为删除”
通常为卸载和删除服务时服务正在运行或者windows服务管理器没有关闭致使,删除前养成关闭服务和服务管理器的习惯,而后从新安装启动便可。
2.服务启动后自动关闭,没法正常运行
通常是配置文件配置错误,常见如端口冲突(好比IIS 和Nginx 使用了相同端口,则Nginx不能再使用该端口),这时只要消除端口冲突便可,具体错误能够查看错误日志。
更新:
经验证该方法在server系统没法自动启动和服务状态显示错误问题,推荐使用NSSM封装nginx为windows服务使用,使用方法参照 使用nssm注册 windows服务