zoukankan      html  css  js  c++  java
  • Nginx 安装成Windows 服务方法

    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 FilesWindows Resource KitsTools目录)可以发现这两个程序.在运行下面命令之前,确保将srvany.exe复制到nginx的安装(解压)目录下,然后运行:

    Command代码  收藏代码
    1. instsrv Nginx D: ginxsrvany.exe  


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

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

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

    Window register代码  收藏代码
    1. Windows Registry Editor Version 5.00  
    2. [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNGINXParameters]  
    3. "Application"="D:\nginx\nginx.exe"  
    4. "AppParameters"=""  
    5. "AppDirectory"="D:\nginx\"  



    现在就可以通过控制面板->管理员工具->服务中找到该服务,并启动和停止了。
    但是,当停止Nginix服务后,访问浏览器仍然能看到网站。查看进程,你会发 现,Nginx启动了两个nginx进程(根据nginx.conf的配置worker_processes  1;),Fork出来的进程显然没有被停止,结果就是nginx永远关不掉。因此彻底关闭nginx请使用taskkill命令:

    Command代码  收藏代码
    1. taskkill /F /IM nginx.exe > nul  


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

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



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

    Command代码  收藏代码
    1. sc delete Nginx  



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

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

  • 相关阅读:
    量化平台的发展转
    jmeter全面总结8jmeter实战
    月见笔谈【一】——关于悲剧
    为什么要不断接触和学习新技术之我见
    WPF后台动态调用样式文件
    WPF后台动态添加TabItem并设置样式
    SQL查询SQLSERVER数据库中的临时表结构脚本
    防抖功能的实现
    项目中自定义进度条的实现
    vue3 请求响应拦截
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/3504032.html
Copyright © 2011-2022 走看看