文档章节

Windows下将nginx安装为服务运行

yale8848
 yale8848
发布于 2016/04/20 12:11
字数 1161
阅读 610
收藏 5

今天看到nginx这个小服务器软件正式版更新到了1.4.2,想玩下它。这个服务器软件虽小,但功能强大,是开源软件,有着良好的性能,被很多个人、企业,甚至大型企业所使用!

       由于是在Windows下,所以只能双击运行,然后通过以下命令来管理:

 Nginx/Win32是运行在一个控制台程序,而非windows服务方式的。服务器方式目前还是开发尝试中,Nginx/Win32可以使用以下开关来管理它:
Nginx -s stop 快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。(快速退出) Nginx -s quit 平稳关闭Nginx,保存相关信息,有安排的结束web服务。(平滑退出) Nginx -s reload 因改变了Nginx相关配置,需要重新加载配置而重载。(重新加载配置) Nginx -s reopen 重新打开日志文件。(重新加载日志)

       如果能把它安装成Windows服务运行,那就爽了!!在网上找了个Windows服务安装工具:srvinstw。这个工具是可以把nginx安装成服务,但不能被正常启动,无法运行。只能作罢!

       经过一番查找以后,终于找到了解决办法:

       这里我们需要用到一个软件:Windows Service Wrapper,这个软件也是开源的,而且已经很久没有更新了,我找到的最后版本是1.9,如果你看到有新版本,记得通知我哦!Windows下将nginx安装为服务运行 - 飘风剑 - swordhack使用这个软件可以将程序安装成服务运行。

       下面我们就来具体操作:

       1、下载nginx的最新版本1.4.2,解压缩到D:\nginx下载Windows Service Wrapper软件1.9,拷贝到D:\nginx目录,并重命名为winsw。(点击上面连接下载软件)

       2、打开记事本,复制以下内容到里面,另存为:D:\nginx\winsw.xml

<?xml version="1.0" encoding="UTF-8" ?>
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>D:\nginx\nginx.exe</executable>
<logpath>D:\nginx\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p D:\nginx</startargument>
<stopargument>-p D:\nginx -s stop</stopargument>
</service>

         如果你的目录和我的不一样,就自行修改吧!

       3、以管理员身份运行cmd,输入:D:\nginx\winsw.exe install,回车,提示安装服务完成。

       此时,你的nginx可以以Windows服务运行了,可以打开服务管理器进行服务的启动、停止、修改自动或手动运行等,更可以使用Windows的cmd命令:net start/stop nginx来管理。是不是很方便呢?

         扫二维码下载上面软件啦,哈哈!!

Windows下将nginx安装为服务运行 - 飘风剑 - swordhack                        Windows下将nginx安装为服务运行 - 飘风剑 - swordhack
       4、验证 nginx是否工作正常:
在浏览器中输入 localhost或者 127.0.0.1,看到如下图所示,说明 nginx工作正常,恭喜了!
Windows下将nginx安装为服务运行 - 飘风剑 - swordhack
 注:这种方法在win8上好像有问题,在重新启动电脑以后,会是不是得不能随系统启动,原因不详!如果你知道,请告诉我,谢谢!
 
补充另外一种方法:
       使用微软自己的工具来将 nginx安装为服务运行。 微软的 Windows NT Resource Kit里面有2个小工具,即:Instsrv.exe和Srvany.exe,Instsrv.exe可以给系统安装和删除服务,Srvany.exe可以让程序以服务的方式运行。srvany.exe可用于将任何EXE程序作为Windows服务运行。也就是说srvany只是其注册程序的服务外壳,这个特性对于我们来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。
       当然这个是命令行工具,而且还需要修改注册表,比较麻烦,那么我们就用别人的一个UI小工具来实现。
       把文件解压到 nginx目录里,运行srvanyui.exe,点击左上角绿色的加号,然后设置好,点确定(如下图),服务就创建好了!哈哈,简单吧。
Windows下将nginx安装为服务运行 - 飘风剑 - swordhack
       但是,当使用windows服务管理器停止Nginix服务后,访问浏览器仍然能看到网站。查看进程,你会发现,Nginx的其中一个进程还在运行!nginx进程(根据nginx.conf的配置worker_processes 1;),Fork出来的进程显然没有被停止,结果就是nginx永远关不掉。因此彻底关闭nginx请使用taskkill命令!
       那么我们只好做个stop_nginx脚本来处理nginx停止的所有操作:
@echo off
echo stopping nginx service...
net stop nginx
echo Kill nginx process...
taskkill /F /IM nginx.exe>nul

© 著作权归作者所有

共有 人打赏支持
yale8848
粉丝 14
博文 91
码字总数 22470
作品 0
西安
程序员
私信 提问

暂无文章

apache顶级项目(二) - B~C

apache顶级项目(二) - B~C https://www.apache.org/ Bahir Apache Bahir provides extensions to multiple distributed analytic platforms, extending their reach with a diversity of s......

晨猫
今天
1
0
day152-2018-11-19-英语流利阅读

“超级食物”竟然是营销噱头? Daniel 2018-11-19 1.今日导读 近几年来,超级食物 superfoods 开始逐渐走红。不难发现,越来越多的轻食餐厅也在不断推出以超级食物为主打食材的健康料理,像是...

飞鱼说编程
今天
6
0
SpringBoot源码:启动过程分析(二)

接着上篇继续分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 一样的,我们先把时序图贴上来,方便理解: 二.源码分析 回顾一下,前面我们分析到了下...

Jacktanger
昨天
3
0
Apache防盗链配置,Directory访问控制,FilesMatch进行访问控制

防盗链配置 通过限制referer来实现防盗链的功能 配置前,使用curl -e 指定referer [root@test-a test-webroot]# curl -e "http://www.test.com/1.html" -x127.0.0.1:80 "www.test.com/1.jpg......

野雪球
昨天
5
0
RxJava threading

因为Rx针对异步系统设计,并且Rx也自然支持多线程,所以新的Rx开发人员有时会假设Rx默认是多线程的。在其他任何事情之前,重要的是澄清Rx默认是单线程的。 除非另有说明,否则每次调用onNex...

woshixin
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部