添加nginx.exe作为Windows系统服务(如Apache)?

我将NGINX设置为静态内容的前端服务器,并将Apache用作其他事物的后端服务器。

问题是,我无法找到一个合理的答案,使我能够将nginx.exe作为Windows系统服务(如我的Apache)。

任何遇到这个答案?


如何使用Windows Service Wrapper完成此操作

(注意:现在有很多有希望的替代方案 - 另请参阅Adamy在下面的答案中描述的NSSM解决方案。)

  • 通过github或nuget下载最新版本的Windows Service Wrapper。
  • 本文撰写时的最新版本是v2.1.2
  • 由于.NET 2.0和.NET4.0的v2.x可执行文件可用,其他文件仅在需求时才可用。
  • winsw-1.xx-bin.exe重命名为nginxservice.exe
  • 这是将显示拥有您的nginx进程的进程的名称。
  • 将一个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>
    
  • 您可以在config github页面上找到有关配置的最新详细信息,这是一个显示所有可能选项的通用示例以及安装指南。
  • 运行命令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

    上一篇: Add nginx.exe as Windows system service (like Apache)?

    下一篇: Java string to date conversion