Nginx(二)-服务模式运行nginx之WINSW


虽然使用命令行控制ngix很简单,但是如果作为一个服务工作的话能更方便地启动、停止或者设置依赖项。

这里使用开源项目Windows Service Wrapper 来实现。

github下载地址:https://github.com/kohsuke/winsw/releases

.netframework2.0 选择 WinSW.NET2.exe 

.netframework4.0  选择WinSW.NET4.exe

这里选择 WinSW.NET4.exe

 第一步:

下载WinSW.NET4.exe,放至待包装的exe文件夹中,这里就是nginx.exe所在的目录,并修改名字为“nginxservice.exe”

在nginxservice.exe同目录中新建一个同名的xml文件

修改xml文件内容,格式可参考下载列表里的xml范例

这里参考最简单的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服务使用,使用方法参照