把 Nginx 创建为 Windows 的一个服务

把 Nginx 创建为 Windows 的一个服务(一个较好的做法)
多亏了一个叫做 "Windows Service Wrapper" 的小项目,我们有了一个办法来恰当地启动和停止 Nginx。

首先从http://download.java.net/maven/2/com/sun/winsw/winsw/ 下载最新的 exe 程序(Misterdai 写本文时最新的是 "winsw-1.9-bin.exe")。

或者:http://download.java.net/maven/2/com/sun/winsw/winsw/1.9/winsw-1.9-bin.exe

得到该程序后,将其放在 Nginx 安装目录下,并重命名为 myapp.exe。
然后是告诉 WinSw 我们想要它做什么。这将使用一个 XML 配置文件,我们将在文件中指出 Nginx 需要一个 shutdown 命令。

 (在 Nginx 安装目录下)新建一个名为 myapp.xml 的文件,编辑其内容如下: 

?


1

2

3

4

5

6

7

8

9

10

11

<service>

 <id>nginx</id>

 <name>nginx</name>

 <description>nginx</description>

 <executable>C:\nginx\nginx.exe</executable>

 <logpath>C:\nginx\</logpath>

 <logmode>roll</logmode>

 <depend></depend>

 <startargument>-p C:\nginx\</startargument>

 <stopargument>-p C:\nginx\-s
stop<
/stopargument>

</service>

很明显,你应该稍微更改文件,这取决于你自己的文件路径。对于有更多技术需求的朋友,你也可以在该文件中设置 Nginx 依赖的服务。

有一点需要注意的,路径最好不要带空格的,否则会启动失败。

nginx默认是使用80端口的,如果该端口已被别的服务(如iis)占用了,那需要修改conf/nginx.conf文件,把80改为8000或其他的。

最后,我们要安装服务了。只需要简单地执行以下语句,你将在你的服务列表里找到 "Nginx" 服务: 

?


1

2

3

4

5

安装服务

c:\nginx\myapp.exe install

 

卸载服务

c:\nginx\myapp.exe uninstall

 就这些!

之后,命令行输入,或自行从控制面板找到服务列表。

?


1

2

打开服务列表

services.msc

在里面可以找到nginx的服务,设置为自动启动就行了。

如果启动失败了,可以在事件管理器里找到日志(控制面板-管理工具-事件查看器-应用程序)

 

 结束语
根据我的经验,到目前为止这种做法的效果很完美。你得到了 Windows 服务的支持,而且在服务重启时没有遗留孤立的 "nginx.exe"。两全其美。
如果 Nginx 自己可以做到这样的话会更好,但 Nginx 的作者当下正在专注于其他更重要的开发。我敢肯定还有其他人有足够的编程知识来贡献这块所需的代码,所以,如果你是这样的一个人,请尽力来帮助大家。

时间: 2024-09-13 08:22:42

把 Nginx 创建为 Windows 的一个服务的相关文章

vc 如何创建服务-VC 开机自动启动。不用写注册表的方法。想写一个服务来启动这个程序。

问题描述 VC 开机自动启动.不用写注册表的方法.想写一个服务来启动这个程序. 有个EXE程序想要它开机自动启动.我不想用写注册表的方法启动.看能不能够写一个服务来启动这个程序.如果可以麻烦大家能够提供源码.谢谢!!!!! 解决方案 创建服务,CreateService()

解决Windows 2003“在系统启动时至少有一个服务或驱动程序产生错误”_win服务器

如下图: 以前刚接触windows 2003时怎么也解决不了这个问题,大慨是当时电脑基础还不够吧?但现在新装的2003还是这样,我看不过去了. 首先可以看到它提示使用事件查看器查看事件日志.我们打开事件查看器: 看到如上图的确有错误信息,来源MSDTC.那MSDTC是什么呢?是一个windows服务.我们用"sc qc"命令查询这个服务: 从图中可以看到它的DISPLAYNAME IS Distributed Transaction Coordinator,so we open the

系统提速 关闭Windows不必要服务

Windows系统资源直接关系到系统整体的运行速度,随着安装的软件越来越多,许多软件在系统启动时都会自动加载一些服务,占用系统资源,而这些服务大多数时候是处于闲置状态的.Windows系统本身也有一些这样的服务,正常情况下,大多数用户都不会使用,如果能够将这些服务停止,就可以释放出被这些服务占用的系统资源,对提高系统整体运行速度有很大帮助哟,下面就让我们开始吧. 点击菜单"开始""运行",在文本框内键入 services.msc,桌面上将会弹出一个服务窗口,列举出了

Windows Azure云服务用命令行管理云端

几个星期前,我发表了一篇关于Windows Azure 云服务的博客.我正在挖掘新的东西,并且在Mac,PC和Linux(我更喜欢Ubuntu)上做着不同的尝试.作为很长一段时间的PowerShell和命令行的粉丝,我一直在寻找在"文本模式"中处理事务的方法,以及脚本站点的创建和部署. 原来有一大堆用命令行访问Azure的方法-比我想象的还多.有一个基于JSON的Web API,这会让那些工具终止对话.如果你想的话,你当然可以直接调用那些API,但是命令行工具确实非常有趣. Windo

Windows Azure移动服务增加Android支持

[搜狐IT消息]3月6日消息,据国外媒体报道,微软Windows Azure移动服务平台推出之后,今天首次增加了对谷歌Android的支持.微软去年推出了面向移动应用的云端Azure移动服务.但在当时,该服务只支持Windows 8,随后他们的团队给该服务增加了iOS和Windows Phone 8支持.但是从今天开始Android用户也能够将他们的应用连接到Azure移动服务,并且利用这个平台存储他们的结构化数据,使用该平台的可靠的工具,发出 推送通知.Android SDK在GitHub可获

Windows Azure基础结构服务新功能VM Agent

Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure 基础结构服务最近宣布了一项新功能 VM Agent.VM Agent 是一个轻量级进程,用于启动由Microsoft 或合作伙伴共同提供的额外解决方案,可以配置.管理和加速虚拟机.本博客意在说明 VM Agent 及其与 VM 扩展程序之间的关系,以及它们的好处和用法.本博客的第 1 部分主要关注在新的 Azure VM 上如何启用 VM Agent 和扩展程

微软宣布发布Windows Azure基础结构服务和虚拟网络

上周,我们宣布公开发布 Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure 基础结构服务和虚拟网络.利用虚拟网络服务,您可以在 Windows Azure 中创建独立的专用网络,并将其作为数据中心的扩展.您可以向虚拟网络中的虚拟机分配专用 IP 地址,指定 DNS,并使用 Cisco 或 Juniper 硬件 VPN 设备将其以"站点到站点"的方式连接到内部部署基础结构. 今天,我们高兴地宣

Windows Azure云端服务正式登陆Android平台

随着云时代的带来,微软正大力部署Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure服务,继前几天收购启动公司MetricsHub之后今天微软副总裁Scott Guthrie在其官方博客上称这项云端服务正式登陆Android平台,这就意味着这项云端服务在主流移动平台上的最后屏障打通,实现了多设备跨平台的 云端服务. 随后在Guthrie在其博客上称:"目前Windows Azure移动服务有两种方式:创

Windows Azure媒体服务实现伦敦奥运会云端传输价值

伦敦奥运会是一个把302枚金牌合理压缩在19天里的盛大的活动.多轮预赛或回合经常同时发生,在32种运动中,对运动会内容提供者的挑战是要把运动会的内容传送给全世界各个时区的观众,可以让他们自由选择他们喜欢看的项目,时间,和方法,无论是直播,中断和回看或者在项目结束之后按自己的需要来看.智能手机和平板电脑的普及导致对不限时间,不限地点,不限设备的技术需求的增加.Gartner说2011年全世界卖出了六千万台平板电脑,预计在2012年能达到1.189亿台,到2016年能达到3.692亿台.现在美国估计