1. 下载nginx windows版本
http://www.nginx.org

2. 下载微软的2个工具: instsrv.exe、srvany.exe

去微软网站下载安装Windows Server 2003 Resource Kit Tools(rktools.exe),它包括标题提及的所有必要的工具,下载完安装好。

3. 运行命令

在rktools安装目录下(一般在C:\Program Files\Windows Resource Kits\Tools目录)可以发现这两个程序.在运行下面命令之前,确保将srvany.exe复制到nginx的安装(解压)目录下,然后运行:

  1. instsrv Nginx D:\nginx\srvany.exe

这样就安装了一个名为Nginx的服务。也就是将srvany.exe注册成一个服务Nginx。Net start Nginx时,肯定会运行srvany.exe。

4. 配置Nginx的运行参数:目的是运行srvany.exe时,附带运行D:\nginx\nginx.exe程序。

可以直接将配置导入到注册表

  1. Windows Registry Editor Version 5.00
  2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NGINX\Parameters]
  3. "Application"="D:\\nginx\\nginx.exe"
  4. "AppParameters"=""
  5. "AppDirectory"="D:\\nginx\\"

现在就可以通过控制面板->管理员工具->服务中找到该服务,并启动和停止了。

但是,当停止Nginix服务后,访问浏览器仍然能看到网站。查看进程,你会发
现,Nginx启动了两个nginx进程(根据nginx.conf的配置worker_processes 
1;),Fork出来的进程显然没有被停止,结果就是nginx永远关不掉。因此彻底关闭nginx请使用taskkill命令:

  1. taskkill /F /IM nginx.exe > nul

结果是写一个stop_nginx脚本来处理nginx停止的所有操作

  1. @echo off
  2. echo Stopping nginx service...
  3. net stop nginx
  4. echo Kill nginx process...
  5. taskkill /F /IM nginx.exe > nul

顺便,如果想删除服务,使用命令:

  1. sc delete Nginx

说到这,大家一定会重新思考:如果同样写一个start_nginx脚本,那么还有使用windows服务的必要吗?脚本方式运行nginx除了
有运行控制台窗口,似乎没有区别了。有好事者写了一个RunHiddenConsole.exe,可以隐藏控制台窗口。似乎完全不必考虑使用
windows服务方法了。

峰回路转,别忘记我们的初衷,使用windows服务可以在用户退出登陆时,仍然可以运行nginx进程 ,而脚本方式想如此运行就得颇费点周折,结论是windows服务仍然是有必要的,但仅用于启动nginx,至于停止nginx请使用前述脚本。

Nginx 安装成Windows 服务方法的更多相关文章

  1. 用 nssm 把 Nginx 安装成 Windows 服务方法

    总之:用 nssm 比 srvany.exe 简便多了.1. 下载nginx windows版本:http://nginx.org/ 2. 下载 nssm :http://nssm.cc/3. 安装N ...

  2. Nginx 安装成 Windows 服务

    Nginx 安装成Windows 服务方法,具体方法如下 1. 下载nginx windows版本 http://www.nginx.org 2. 下载微软的2个工具: instsrv.exe.srv ...

  3. Nginx安装成Windows服务

    因为有项目使用Nginx来做负载均衡,但是Nginx的Windows版本是不提供安装成服务的,所以服务器重启后Nginx并不会伴随启动和恢复.网上查了下,这里记录下解决方法,防止遗忘. 第一步:下载W ...

  4. 将 nginx 安装成 windows 的方法

    服务器这几天不稳定,经常性的重启(硬件问题),而且是windows环境,在其上跑了nginx,每次重启后需要手动启动nginx方能是整个系统正常. 所以就查找了下一种方法,能否将nginx做成wind ...

  5. 使用srvany.exe把程序安装成windows服务的方法

    http://mazhihui.iteye.com/blog/1294431 srvany.exe是什么? srvany.exe是Microsoft Windows Resource Kits工具集的 ...

  6. 使用srvany.exe将程序安装成windows服务的详细教程

    srvany.exe介绍 srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说srva ...

  7. 使用srvany.exe把程序安装成windows服务

    srvany.exe介绍 srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说srva ...

  8. 【先定一个小目标】Redis 安装成windows服务-开机自启

    1.第一步安装成windows服务的,开机自启动 redis-server --service-install redis.windows.conf 2.启动\关闭 redis-server --se ...

  9. Java的jar文件安装成windows 服务

    Java的jar文件安装成windows 服务: 1.下载:nssm,复制到jar文件目录下 2. jar文件目录下创建bat文件[run.bat],内容为[java -jar 文件名.jar] 3. ...

随机推荐

  1. 1月21日 Reference Data Type 数据类型,算法基础说明,二分搜索算法。(课程内容)

    Reference Datat Types 引用参考数据类型 -> 组合数据类型 Array, Hash和程序员自定义的复合资料类型 组合数据的修改: 组合数据类型的变量,不是直接存值,而是存一 ...

  2. hdu-6324-博弈

    Problem F. Grab The Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Ja ...

  3. UVA-1252 Twenty Questions (状压DP)

    题目大意:有n件物品,每件物品有m个特征,可以对特征进行询问,询问的结果是得知某个物体是否含有该特征,要把所有的物品区分出来(n个物品的特征都互不相同)最小需要多少次询问? 题目分析:定义dp(s,a ...

  4. OAF 通过个性化 在标准事件上添加验证

    在实际的开发过程中,我们经常会遇到以下情况: 在执行标准的功能之前要对个性化的内容进行校验. 比如:在某个标准页面通过个性化添加了一个勾选框,在点击下一步的时候必须去验证此勾选框是否勾选. 具体实现如 ...

  5. iframe刷新父页面

    iframe页面是内嵌到父页面的,当点击iframe页面的服务器控件时,默认只刷新iframe页面,父页面是不会刷新的.若想刷新父页面,可以使用js来实现,如 1. parent.location.r ...

  6. [LeetCode] 35. Search Insert Position ☆(丢失的数字)

    转载:https://leetcode.windliang.cc/leetCode-35-Search-Insert-Position.html    思路 Given a sorted array ...

  7. Flask初级(三)flash使用模板

    Project name :Flask_Plan 模板文件夹未在创建项目时设定的是templates 我们不能总是用return 每个页面去写html,老长了. flask提供了模板引擎,其实也是别人 ...

  8. DevExpress v18.1新版亮点——WPF篇(四)

    用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress WPF v18.1 的新功能,快来下载试用新版本!点击下载& ...

  9. 教你如何打开android4.3和4.4中隐藏的AppOps

    注:下面的方法在4.4.2更新后已失效! PreferenceActivity的switchToHeaderInner()函数中会调用isValidFragment函数来检查fragment是否合法. ...

  10. Tomcat启动失败:Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds

    问题如下: 解决办法: 再次重启服务器就能解决这个问题.