Windows下将nginx安装为服务运行

今天看到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,如果你看到有新版本,记得通知我哦!使用这个软件可以将程序安装成服务运行。

下面我们就来具体操作:

1、下载nginx的最新版本1.10.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来管理。是不是很方便呢?

4、验证nginx是否工作正常:

在浏览器中输入localhost或者127.0.0.1,看到如下图所示,说明nginx工作正常,恭喜了!

注:这种方法在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服务管理器停止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

PS:2016.10.26日更新软件下载链接和版本!

时间: 2024-10-25 12:04:18

Windows下将nginx安装为服务运行的相关文章

Windows Server 2008 R2下将nginx安装成windows系统服务

一直在Linux平台上部署web服务,但是最近的一个项目,必须要用windows,不得已再次研究了nginx在windows下的表现,因为Apache httpd在Windows下表现其实也不算太好,而我更喜欢nginx. 惊奇地发现nginx在Windows下已经趋于稳定,于是我决定使用nginx作为web服务器. 到nginx下载页面,即可发现对应的版本可下载:http://nginx.org/en/download.html. 下载完成后放到指定目录,如D:\nginx. 将nginx安装

windows下配置nginx+php环境

windows下配置nginx+php环境 刚看到nginx这个词,我很好奇它的读法(engine x),我的直译是“引擎x”,一般引“擎代”表了性能,而“x”大多出现是表示“xtras(额外的效果)”,那么整个词的意思就是类似“极致效果”,“额外性能”.当然这里不是要来唠嗑,以上是题外话. nginx相较于我们熟悉的apache.IIS的优势,就我浅入浅出的了解,在于“反向代理”和“负载均衡”.因此考虑到能够为Web服务器节省资源,它可以代替apache来提供Web服务.那么上正题了,ngin

在CentOS/Windows下配置Nginx(以及踩坑)

在CentOS/Windows下配置Nginx(以及踩坑) 1. 序言 因为这类文章网上比较多,实际操作起来也大同小异,所以我并不会着重于详细配置方面,而是将我配置时踩的坑写出来. 2. CentOS 2.1 第一步下载nginx包 我选择将包放在/usr/local下 cd /usr/local wget (nginx下载目录网址) 这里的下载目录可以根据需要选择版本从而决定 请点击nginx下载查看目录 2.2 安装nginx所需环境 yum?install?gcc-c++ yum?inst

windows下的mysql安装

windows下的mysql安装分为采用安装文件安装(用的是windows的install程序来做安装),还有一种方式是通过windows中注册一个服务(也可以不注册服务,你每次在windows系统的dos窗口下通过mysqld,mysqldadmin等来做启动和关闭.所以注册了服务相当于把这些exe的程序和路径封装到服务中了,此外服务也可以方便的定义为开机就启动).总之就是两种安装方式. 如果第一次安装建议在MYSQL官网上下载包含INSTALL的方式来做安装,这样就相当于傻瓜式的操作,一般不

[转载]为 Windows 下的 PHP 安装 PEAR 和 PHPUnit

为 Windows 下的 PHP 安装 PEAR 和 PHPUnit 粗略翻译自 Installing PEAR and PHPUnit on WAMP and Windows 7,略有增改. 有需要安装 PHPUnit 来测试脚本,搜索到一篇文章,记录下来. 注意:PHP 5.2 的目录下貌似是有 PEAR 目录的,也有 go-pear.bat,这个你可以自行研究下,看是否可用.我这里测试的是 PHP 5.4,默认不自带 go-pear.bat,所以,如果你是 5.2 的话,这个教程是否可用我

Windows下的Memcache安装

很多phper不知道如何在Windows下搭建Memcache的开发调试环境,最近个人也在研究Memcache,记录下自己安装搭建的过程. 其实我开始研究Memcache的时候并不知道居然还有memcached for Win32这个鸟东西,害得我在CnetOS下折腾1天才搞定,今天突然发现Windows下的Memcache进行开发调试完全没有问题,所以写篇Memcache的文档分享给大家.Windows下的Memcache安装:1. 下载memcache的windows稳定版,解压放某个盘下面

Windows下的Memcache安装:

Windows下的Memcache安装:1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached2. 在终端(也即cmd命令界面)下输入 'c:\memcached\memcached.exe -d install' 安装3. 再输入: 'c:\memcached\memcached.exe -d start' 启动.NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动.这样服务器端已经安装完毕了.4.下载php_memca

Windows下的Memcache安装 linux下的Memcache安装

linux下的Memcache安装: 1. 下载 memcache的linux版本,注意 memcached 用 libevent 来作事件驱动,所以要先安装有 libevent. 官方网址:http://memcached.org/ 2. 安装 pecl::memcache. 用 pecl 命令行工具安装: pecl install memcache 或直接从源码安装: phpize ./configure make make install Windows下的Memcache安装: 1. 下

Windows下MetaMap工具安装

Windows下MetaMap工具安装 一.Main MetaMap安装 Prerequisties 12G磁盘空间 JAVA6 or newer JRE or SDK installed Downloading The distribution is available at the MetaMap Main Download Page URL: http://metamap.nlm.nih.gov/MainDownload.shtml 图形安装 双击public_mm目录下的“Install