Nginx 注册为Windows 系统服务

it2022-05-05  116

Nginx 注册为Windows 系统服务

软件下载

nginx 版本:1.15.8

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

winsw 版本:2.2.0

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

 

软件安装运行

nginx 直接解压。

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

新建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>

管理员身份运行CMD,进入nginx 根目录下,运行nginx-service install 命令注册系统服务。

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

问题解决

查看日志

 

出现以下错误,说明没有以管理员身份运行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)

出现以下错误,说明端口被占用。

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)

最新回复(0)