Windows下将nginx安装为服务运行

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

       因为是在Windows下,因此只能双击运行,而后经过如下命令来管理:web

 

 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

       通过一番查找之后,终于找到了解决办法:浏览器

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

       下面咱们就来具体操做:app

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

       二、打开记事本,复制如下内容到里面,另存为: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>

 

         若是你的目录和个人不同,就自行修改吧!网站

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

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

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

Windows下将nginx安装为服务运行 - 飘风剑 - swordhack                        Windows下将nginx安装为服务运行 - 飘风剑 - swordhack
       四、验证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
相关文章
相关标签/搜索