把 Nginx 创建为 Windows 的一个服务

简介: 把 Nginx 创建为 Windows 的一个服务(一个较好的做法) 多亏了一个叫做 "Windows Service Wrapper" 的小项目,我们有了一个办法来恰当地启动和停止 Nginx。 首先从http://download.java.net/maven/2/com/sun/winsw/winsw/ 下载最新的 exe 程序(Misterdai 写本文时最新的是 "winsw

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
  < id >nginx< / id >
  nginx< / name>
  nginx< / description>
  C:\nginx\nginx.exe< / executable>
  C:\nginx\< / logpath>
  roll< / logmode>
  < / depend>
  - p C:\nginx\< / startargument>
  - 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 的作者当下正在专注于其他更重要的开发。我敢肯定还有其他人有足够的编程知识来贡献这块所需的代码,所以,如果你是这样的一个人,请尽力来帮助大家。

相关文章
|
1月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
63 5
|
3天前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
10天前
|
负载均衡 前端开发 JavaScript
Nginx 代理多服务
以上是 Nginx 代理多服务的几种常见方式,在实际应用中,可以根据具体的业务需求和系统架构选择合适的代理方式,并结合其他 Nginx 的功能和配置来优化和完善系统的性能和功能。
|
1月前
|
边缘计算 安全 网络安全
|
28天前
|
缓存 负载均衡 应用服务中间件
Nginx 实现一个端口代理多个前后端服务
【10月更文挑战第19天】Nginx 的强大功能不仅限于此,它还可以与其他技术和工具相结合,为我们的应用提供更强大的支持和保障。在不断发展的互联网时代,掌握 Nginx 的使用技巧将为我们的工作和生活带来更多的便利和效益。
|
1月前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
96 9
|
1月前
|
应用服务中间件 Shell PHP
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
|
1月前
|
应用服务中间件 Apache Windows
免安装版的Tomcat注册为windows服务
免安装版的Tomcat注册为windows服务
118 3
|
1月前
|
应用服务中间件 Apache 开发工具
nginx服务企业应用
nginx服务企业应用
|
1月前
|
应用服务中间件 网络安全 nginx
nginx作为web服务以及nginx.conf详解
nginx作为web服务以及nginx.conf详解
下一篇
无影云桌面