Nginx 在windows下注册系统服务

 在windows服务器上运行了nginx,那么肯定会面临一个问题,那就是重启了怎么办,网站访问不了,每次手动启动很麻烦。然而nginx作为linux的一款软件,在windows下面注册成服务还是比较麻烦的,参考了网上的资料,现目前无外乎有两种方式。

第一种是使用Windows Service Wrapper(强烈推荐,原因在本文最下面)

1.工具下载地址:http://pan.baidu.com/s/1kVPecCJ(文件取消)

新提供下载路径:https://github.com/kohsuke/winsw/releases

2.解压后将最新的1.9版本重命名为“myapp.exe”  并将其放到nginx目录下


3.新建一个文本文档内容如下:(里面的路径根据自己的情况修改)

[html]  view plain  copy
  1. <service>    
  2.  <id>nginx</id>    
  3.  <name>nginx</name>    
  4.  <description>nginx</description>    
  5.  <executable>D:\web_project\nginx-1.9.5\nginx.exe</executable>    
  6.  <logpath>D:\web_project\nginx-1.9.5\logs</logpath>    
  7.  <logmode>roll</logmode>    
  8.  <depend></depend>    
  9.  <startargument>-p D:\web_project\nginx-1.9.5</startargument>    
  10.  <stopargument>-p D:\web_project\nginx-1.9.5 -s stop</stopargument>    
  11. </service>    
保存为myapp.xml文件,同样放到您想目录下。


4.运行cmd执行如下命令:(路径根据自己的情况修改)

D:\web_project\nginx-1.9.5\myapp.exe install


5.进入系统服务就能看见 nginx了。(完成)  


第二种是  instsrv / servany 方式。


1.工具下载地:http://eastedu.bl-changjiang.com/UploadFiles/2006-5/511179043.rar


2.解压后把srvany.exe复制到nginx目录下


3.运行cmd切换路径到nginx目录下,并执行下面的命令:

instsrv Nginx c:\nginx\srvany.exe


4.在nginx目录下编辑一个nginx.reg的文件

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NGINX\Parameters] 

"Application"="C:\\nginx\\nginx.exe" 

"AppParameters"="" 

"AppDirectory"="C:\\nginx\\"


5.让服务与程序关联起来, 命令行执行 

regedit /s nginx.reg


6.编辑启动nginx脚本start-nginx.bat(关闭脚本不用变), 让程序以服务方式运行 

@ECHO 

OFF net stop nginx 

net start nginx 

EXIT




推荐第一种的原因:如果采用第二种方式,启动服务后,nginx会创建两个进程,当停止服务时,还有一个进程没有关闭。这就是很多人遇到的关闭服务后,任然可以访问网站。此时必须使用 taskkill /F /IM nginx.exe > nul命令来清理掉所有进程,才能彻底关掉。而第一种不会出现这样的问题。

猜你喜欢

转载自blog.csdn.net/liberalliushahe/article/details/80222192