在windows服务器上运行了nginx,那么肯定会面临一个问题,那就是重启了怎么办,网站访问不了,每次手动启动很麻烦。然而nginx作为linux的一款软件,在windows下面注册成服务还是比较麻烦的,参考了网上的资料,现目前无外乎有两种方式。
第一种是使用Windows Service Wrapper(强烈推荐,原因在本文最下面)
1.工具下载地址:http://pan.baidu/s/1kVPecCJ
2.解压后将最新的1.9版本重命名为“myapp.exe” 并将其放到nginx目录下
3.新建一个文本文档内容如下:(里面的路径根据自己的情况修改)
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>D:\web_project\nginx-1.9.5\nginx.exe</executable>
<logpath>D:\web_project\nginx-1.9.5\logs</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p D:\web_project\nginx-1.9.5</startargument>
<stopargument>-p D:\web_project\nginx-1.9.5 -s stop</stopargument>
</service>
保存为myapp.xml文件,同样放到您想目录下。
4.运行cmd执行如下命令:(路径根据自己的情况修改)
D:\web_project\nginx-1.9.5\myapp.exe install
5.进入系统服务就能看见 nginx了。(完成)
第二种是 instsrv / servany 方式。
1.工具下载地:http://eastedu.bl-changjiang/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命令来清理掉所有进程,才能彻底关掉。而第一种不会出现这样的问题。
更多推荐
Nginx 在windows下注册系统服务
发布评论