项目中需要将nginx部署到windows系统中,参照linux中的部署和要求整理一下部署过程。
1、下载部署
到nginx的官方网站中下载最新的稳定版的nginx。
部署nginx,解压即可。
2、使用winsw
WinSW为开源项目(https://github.com/winsw/winsw/releases),可用于将自定义进程包装和管理为Windows服务。下载安装包后,可以重命名winsw.exe为任何名称,例如myService.exe。
在项目地址查找最新的稳定版本,例如:
https://github.com/winsw/winsw/releases/tag/v2.12.0
下载后将WinSW-x64.exe放到nginx文件夹中,新建WinSW-x64.xml
<service>
<id>nginx</id>
<name>Nginx Service</name>
<description>High Performance Nginx Service</description>
<logpath>D:\nginx-1.24.20\winswlogs</logpath>
<log mode="roll-by-size">
<sizeThreshold>10240</sizeThreshold>
<keepFiles>8</keepFiles>
</log>
<executable>D:\nginx-1.24.20\nginx.exe</executable>
<startarguments>-p D:\nginx-1.24.20</startarguments>
<stopexecutable>D:\nginx-1.24.20\nginx.exe</stopexecutable>
<stoparguments>-p D:\nginx-1.24.20 -s stop</stoparguments>
</service>
配置文件说明:
id 服务唯一标识
name 在windowServer中显示的名字
description 描述
logpath winsw的日志输出地址
log 日志信息的配置
executable windows服务启动时要执行的命令
startarguments 启动时要带的参数
stopexecutable windows服务停止时要执行的命令
stoparguments 停止时要带的参数
以管理员身份打开当前目录命令行执行安装
nginx-service.exe install
如要卸载,以管理员执行
nginx-service.exe uninstall
3、启动停止
启动 net start nginx
停止 net stop nginx
执行Reload
正常操作命令是:cd C:\Program Files\nginx && nginx -s reload。
但是把nginx安装为windows服务运行后,无法进行这个操作。
解决方法,下载微软的pstools
https://download.sysinternals.com/files/PSTools.zip
使用帮助:https://learn.microsoft.com/zh-cn/sysinternals/downloads/pstools
如果路径有空格,需用引号包起来执行:
"C:\Program Files\PSTools\psexec.exe" -s "C:\Program Files\nginx\nginx.exe" -p "C:\Program Files\nginx" -s reload
执行结果:C:\Program Files\nginx\nginx.exe exited on WIN-F0C8K with error code 0.重载就完成了。
至此,完成配置。