项目中需要将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.重载就完成了。

至此,完成配置。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐