【nginx】Ngnix 在 Windows 下无法作为服务自动启动,求教!

在 windows 10 家庭版、windows server 2008 企业版下,使用 Windows Service Wrapper( winsw.exe ,版本191) 将nginx-1.9.12 作为服务启动,可以安装、卸载 Ngnix 服务,但无法启动,手动点击启动出现提示如图。
请问为什么,有没有运行成功的,求指教。

【nginx】Ngnix 在 Windows 下无法作为服务自动启动,求教!

【nginx】Ngnix 在 Windows 下无法作为服务自动启动,求教!

补充:这两个图是Win10下面的截图。刚才又在一台win7 32位旗舰版上面试了一下,启动弹出错误1067。Windows Service Wrapper的官网下载链接已经挂了,于是在网上又找了一个,在win10 + ngnix1.81稳定版下,还是如图的提示。

补充:随便挑了两个可执行文件封装,重启后成功自启动。问题应该出在Nginx身上。

回答

误以为 Windows Service Wrapper 配置文件中启动和停用参数用的是文件名,实际上只要给目录路径就行。

正好之前有相应的记录,请参考下面步骤。因为比较长截取主要部分,常见错误等问题具体见我之前的博文:

使用WinSW将Nginx注册为windows系统服务可随机启动


   在windows上使用Nginx时发现不能随机启动,而在使用Linux版没有这个问题。查阅官方文档才知道当前windows版本的Nginx只是作为一个标准程序运行,而不是一个系统服务。官方也给出了说明,这是后面要新增加的重要功能。原文:http://nginx.org/en/docs/windows.html

如果不注册成系统服务,服务器重启(断电、自动更新 etc.)就需要自己手动重启,不然网站、系统均无法访问。想想挺可怕,搜索发现可以通过winsw把Nginx注册成一个系统服务。写这篇博客的原因是按照网络大量教程折腾半天都没成功,后来对比官网给的例子发现原因是新版本的WinSW不兼容旧版本的配置文件,希望大家少走些弯路。

WinSW是一个可执行的二进制文件,可用于将自定义进程作为Windows服务进行包装和管理。可以将nginx包装成一个系统服务,实现Nginx随windows随机启动。项目主页:https://github.com/kohsuke/winsw

1. 在项目主页内找到winsw的下载页面(我用的是最新2.0.2版本,你可以下载最新的)

http://repo.jenkins-ci.org/re...

下载的文件:winsw-2.0.2-bin.exe

2. 在nginx项目页面下载nginx windows版本

http://nginx.org

把nginx压缩包解压放到指定目录,例如我放的是d盘根目录(路径中不要带空格,否则会启动失败)

nginx目录是:D:/inx-1.11.11

3. 将winsw-2.0.2-bin.exe复制到nginx目录:D:/nginx-1.11.11,并将其改成nginx-service.exe

4. 新建一个xml文件nginx-service.xml,名称一定要与3中相同(nginx-service)。文件内容如下:

<service>

  <id>nginx</id>

<name>nginx</name>

<description>nginx</description>

<env name="path" value="D:/nginx-1.11.11"/>

<executable>D:/nginx-1.11.11/nginx.exe</executable>

<arguments>-p D:/nginx-1.11.11</arguments>

<logpath>D:/nginx-1.11.11/logs/</logpath>

<logmode>roll</logmode>

</service>

5. 运行Windows cmd命令,进入nginx目录:,在运行nginx-service.exe install将其注册为windws系统服务。

可在系统服务中看到nginx服务

6. 鼠标右键启动服务,访问http://localhost出现nginx页面,安装成功。

以上是 【nginx】Ngnix 在 Windows 下无法作为服务自动启动,求教! 的全部内容, 来源链接: utcz.com/a/82424.html

回到顶部