use*_*810 52 windows service windows-services nginx
我将NGINX设置为静态内容的前端服务器,我将Apache用作其他东西的后端服务器.
问题是我无法找到一个合乎逻辑的答案,它允许我制作nginx.exeWindows系统服务(比如我的Apache).
有人遇到过这个答案吗?
Jör*_*örg 76
如何使用Windows Service Wrapper执行此操作
(注:有希望的替代品现在- 又见NSSM解决方案在回答下面的描述从Adamy.)
winsw-*.exe为类似的东西nginxservice.exe.
使用相同的基本名称在exe旁边放置一个XML文件,例如nginxservice.xml.内容应如下所示(验证您的nginx位置).
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>c:\nginx\nginx.exe</executable>
<logpath>c:\nginx\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p</startargument>
<startargument>c:\nginx</startargument>
<stopexecutable>c:\nginx\nginx.exe</stopexecutable>
<stopargument>-p</stopargument>
<stopargument>c:\nginx</stopargument>
<stopargument>-s</stopargument>
<stopargument>stop</stopargument>
</service>
Run Code Online (Sandbox Code Playgroud)
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存储库找到最新版本的Windows Service Wrapper:http: //repo.jenkins-ci.org
例:
<dependency>
<groupId>com.sun.winsw</groupId>
<artifactId>winsw</artifactId>
<version>2.2.0</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>
compile "com.sun.winsw:winsw:2.2.0"
repositories {
mavenCentral()
maven { url http://repo.jenkins-ci.org/releases }
}
Run Code Online (Sandbox Code Playgroud)
Ada*_*amy 47
下载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不支持)......
我找到的最简单的方法是使用Chocolatey软件包管理器。
安装Chocolatey后,您将打开一个管理提示并输入:
choco install nginx
Run Code Online (Sandbox Code Playgroud)
现在,您正在运行一个名为“ nginx”的Windows服务。
您可以使用start.bat和stop.bat来实现相同的效果.
@ECHO OFF
REM Start Nginx
tasklist /FI "IMAGENAME eq nginx.exe" 2>NUL | find /I /N "nginx.exe">NUL
IF NOT "%ERRORLEVEL%"=="0" (
REM Nginx is NOT running, so start it
c:
cd \nginx
start nginx.exe
ECHO Nginx started.
) else (
ECHO Nginx is already running.
)
Run Code Online (Sandbox Code Playgroud)
@ECHO OFF
REM Stop Nginx
tasklist /FI "IMAGENAME eq nginx.exe" 2>NUL | find /I /N "nginx.exe">NUL
IF "%ERRORLEVEL%"=="0" (
REM Nginx is currently running, so quit it
c:
cd \nginx
nginx.exe -s quit
ECHO Nginx quit issued.
) else (
ECHO Nginx is not currently running.
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67940 次 |
| 最近记录: |