Windows Service Wrapper也就是winsw.exe,Windows系统中的一款重要的服务组件,可以帮助用户不用每次输入命令就可以实现Nginx自启动,Nginx作为web服务器,专为优化性能设计,使用这款组件就可以轻松运行Nginx了。
基本介绍:
winsw.exe是一款用于服务器的辅助工具,主要功能为可帮助用户无需每次输入命令,让nginx作为windows服务实现自启动,有效的得到win的支持,非常的便捷实用。
使用方法:
1、下载最新版的 Windows Service Wrapper 程序,比如我下载的名称是 "winsw-1.9-bin.exe",
然后,把它命名成你想要的名字(比如: "myapp.exe",当然,你也可以不改名)
2、将重命名后的 myapp.exe 复制到 nginx 的安装目录(我这里是 "F:nginx-0.9.4")
3、在同一个目录下创建一个Windows Service Wrapper的XML配置文件,名称必须与第一步重命名时使用的名称一致(比如我这里是 "myapp.xml",如果,你没有重命名,则应该是 "winsw-1.9-bin.xml")
Nginx启动:
Nginx 是一个 web 服务器。它类似于 Lighttpd,作为轻量级的 web server,可以替代重量级的 Apache/iis。Nginx 专为性能优化而开发,是一个快速且能经受高负载考验的 web server。它来自于 Linux 世界但同样可以运行在 Windows 上面(由本地语言构建)。唯一的问题就是它不支持 Windows Services。
Nginx 是绿色免安装的。这里我不去介绍它的管理配置,官方已经提供了一个很棒的 wiki,上面有丰富的服务器相关信息(参考文后链接)。可以使用默认的配置,它会使用 Nginx 目录下的 html 文件夹服务于端口 80。
只需简单地执行 nginx.exe 即可启动 Nginx。但你想要停止它的时候问题来了,你需要执行以下命令:
nginx.exe -s stop
其他方法自启动:
虽然这很简单,但是如果它能够像 apache 或 IIS 那样作为一个服务工作的话会更漂亮。那样的话,我们就可以设置机器启动时 Nginx 自动启动,还可以方便地启动、停止或者重启服务,设置恢复选项、依赖的服务,等等。
为什么不使用 instsrv/servany、FireDaemon 或者其他办法呢
已经有介绍如何通过 FireDaemon 使用 Nginx,但它有一个很重要的问题。Nginx 启动以后,它会创建一个次级进程。所以会有两个 nginx.exe 在运行。对于这个官方可能有一个很合理的理由,但你最好到 Nginx 论坛去问为什么:-)
通过 instsrv/srvany(微软官方创建服务的方法) 或者 FireDaemon 的方式(来创建 Nginx 为服务),只是启动进程,当你想要停止它时,将关闭这个进程。但这些方式都无法关闭多余的那个 nginx.exe 进程。所以每次你停止/启动/重启服务都会产生一个多余的 nginx.exe 进程。不怎么好!
启动、停止和重新加载服务:通过cmd以守护进程方式启动nginx.exe:start nginx.exe,停止服务:nginx -s stop,重新加载配置:nginx -sreload;
每次以cmd方式启动Nginx服务不符合实际要求,于是我们想到将其注册为Windows服务,并设置为自动启动模式。这里,我们使用一个不错的小程序:“Windows Service Wrapper”,将nginx.exe注册为Windows服务!
winsw.exe让Nginx作为Windows服务开机自启动:
文件内容如下:
nginx
nginx
nginx
F:nginx-0.9.4nginx.exe
F:nginx-0.9.4
roll
-p F:nginx-0.9.4
-p F:nginx-0.9.4 -s stop
命令行下执行以下命令,以便将其安装成Windows服务。
F:nginx-0.9.4> myapp.exe install
OK,至此,完工,确认一下:我的电脑 右键 -> 管理 -> 服务 -> 是否有了个 nginx 呢?启动起来,在浏览器中 访问 http://localhost 确认一下,再 停止服务,再访问一下http://localhost 确认一下。
补充:
Windows Servcie Wrapper的命令格式如下:
# 安装服务
CMD:> myapp.exe install
# 卸载服务
CMD:> myapp.exe uninstall
# 启动服务
CMD:> myapp.exe start
# 停止服务
CMD:> myapp.exe stop
在命令行下执行以下命令,以便将其注册成Windows服务:nginx-service.exe install
软件评论 您的评论需要经过审核才能显示
网友评论