添加nginx.exe作为Windows系统服务(如Apache)?
我将NGINX设置为静态内容的前端服务器,并将Apache用作其他事物的后端服务器。
问题是,我无法找到一个合理的答案,使我能够将nginx.exe
作为Windows系统服务(如我的Apache)。
任何遇到这个答案?
如何使用Windows Service Wrapper完成此操作
(注意:现在有很多有希望的替代方案 - 另请参阅Adamy在下面的答案中描述的NSSM解决方案。)
winsw-1.xx-bin.exe
重命名为nginxservice.exe
。 将一个XML文件放在具有相同基本名称的exe旁边,例如nginxservice.xml
。 内容应该像下面一样(验证你的nginx位置)。
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>c:nginxnginx.exe</executable>
<logpath>c:nginx</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p</startargument>
<startargument>c:nginx</startargument>
<stopexecutable>c:nginxnginx.exe</stopexecutable>
<stopargument>-p</stopargument>
<stopargument>c:nginx</stopargument>
<stopargument>-s</stopargument>
<stopargument>stop</stopargument>
</service>
nginxservice.exe install
。 你现在将在你的服务中有一个nginx
服务! (它被设置为在启动时自动启动;如果要启动服务器,则必须手动启动服务( net start nginx
)。)
正确设置nginx作为Windows服务的详细描述:http://web.archive.org/web/20150819035021/http://misterdai.yougeezer.co.uk/posts/2009/10/16/nginx-windows-服务/
以上博客文章未包含的其他信息:
你也可以通过这个Maven Repository找到最新版本的Windows Service Wrapper:http://repo.jenkins-ci.org
例:
<dependency>
<groupId>com.sun.winsw</groupId>
<artifactId>winsw</artifactId>
<version>2.1.2</version>
<classifier>bin</classifier>
<packaging>exe</packaging>
</dependency>
<repository>
<id>jenkinsci</id>
<name>jenkinsci-releases</name>
<url>http://repo.jenkins-ci.org/releases</url>
</repository>
下载NSSM表格http://nssm.cc/download。 “运行%NSSM_HOME% nssm.exe安装”Nginx“”
在NSSM对话框中选择Nginx可执行文件,然后确定。 转到服务并开始新创建的服务“Nginx”,完成。
SC.EXE只适用于已支持Windows Services API的可执行文件,并可正确响应以启动和停止来自服务控制管理器(SCM)的请求。 其他常规应用程序(不是专门作为服务编写的)将无法启动(通常会出现错误1053)...
对于那些exe文件,你需要一个“服务包装器” - 一个小工具,它可以接受来自SCM的启动/停止命令并相应地运行/终止你的应用程序。 微软提供了Srvany(这是免费的,但非常基本),但还有其他几个免费和商业选择。
顺便说一句,你应该看看这个指南显示如何运行Nginix作为服务,特别是第7步讨论如何正确地停止Nginix。 不是每个包装都会支持这种功能(Srvany不会)......
链接地址: http://www.djcxy.com/p/18463.html