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)