Nginx 注册为Windows 系统服务

Nginx 注册为Windows 系统服务

软件下载

nginx 版本:1.15.8

下载地址:http://nginx.org/en/download.html

winsw 版本:2.2.0

下载地址:https://github.com/kohsuke/winsw/releases

 

软件安装运行

  1. nginx 直接解压。

  2. 将WinSW.NET4.exe 重命名为nginx-service.exe 放在nginx 根目录下。

  3. 新建xml 配置文件nginx-service.xml 也放在nginx 根目录下。 详细的配置项可参考官方配置文件sample-allOptions.xml

    <configuration>
        <!-- 服务ID,要唯一(必须) -->
        <id>Nginx Service</id>
        <!-- 服务的显示名称(必须) -->
        <name>Nginx Service</name>
        <!-- 服务的描述信息(必须) -->
        <description>Nginx 1.15.8</description>
        <!-- 需要启动的可执行文件的路径(必须) -->
        <executable>D:\Program Files\nginx-1.15.8\nginx.exe</executable>
        <startarguments>-p D:\Program Files\nginx-1.15.8</startarguments>
        <stoparguments>-p D:\Program Files\nginx-1.15.8 -s -stop</stoparguments>
        <!-- 启动模式,开机启动 -->
        <startmode>Automatic</startmode>
        <!-- 日志路径 -->
        <logpath>D:\Program Files\nginx-1.15.8\logs</logpath>
        <!-- 日志模式,根据大小轮转 -->
        <log mode="roll"></log>
    </configuration>
  4. 管理员身份运行CMD,进入nginx 根目录下,运行nginx-service install 命令注册系统服务。

    // 安装服务
    nginx-service install
    // 卸载服务
    nginx-service uninstall
    // 启动服务
    nginx-service start
    // 停止服务
    nginx-service stop
    // 重启服务
    nginx-service restart
    
    

问题解决

查看日志

 

  1. 出现以下错误,说明没有以管理员身份运行CMD。

    D:\Program Files\nginx-1.15.8>nginx-service install
    2019-07-18 11:41:30,483 INFO  - Installing the service with id 'Nginx Service'
    2019-07-18 11:41:30,515 FATAL - WMI Operation failure: AccessDenied
    WMI.WmiException: AccessDenied
       在 WMI.WmiRoot.BaseHandler.CheckError(ManagementBaseObject result)
       在 WMI.WmiRoot.ClassHandler.Invoke(Object proxy, MethodInfo method, Object[] args)
       在 winsw.WrapperService.Run(String[] _args, ServiceDescriptor descriptor)
       在 winsw.WrapperService.Main(String[] args)
    WMI.WmiException: AccessDenied
       在 WMI.WmiRoot.BaseHandler.CheckError(ManagementBaseObject result)
       在 WMI.WmiRoot.ClassHandler.Invoke(Object proxy, MethodInfo method, Object[] args)
       在 winsw.WrapperService.Run(String[] _args, ServiceDescriptor descriptor)
       在 winsw.WrapperService.Main(String[] args)
  2. 出现以下错误,说明端口被占用。

nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值