前言
有些老项目的nginx部署在windows server上,而且服务器比较老旧,经常异常重启。鉴于个人并不熟悉windows server,因此配置supervisor自启nginx,实现windows开机自启supervisor,然后supervisor启动nginx。
安装supervisor
supervisor为go语言版,代码仓库地址: https://github.com/ochinchina/supervisord
- 代码拉取后,编译出windows的二进制程序
go build -o supervisord.exe
- 随便找个目录放置supervisor的二进制程序,比如
C:\supervisor
- 在
C:\supervisor
目录下新建文件supervisord.conf
,内容示例如下:
[inet_http_server] port=127.0.0.1:9001 [supervisord] logfile=%(here)s/supervisord.log logfileMaxbytes=50MB logfileBackups=10 loglevel=info pidfile=%(here)s/supervisord.pid [include] files = C:\\supervisor\\conf/*.ini
- 在
C:\supervisor
目录下新建文件夹conf
,,然后在 conf 文件夹下新建文件 nginx.ini,内容示例如下,注意根据实际情况修改nginx的路径
[program:nginx] directory=C:\\applications\\nginx-1.22.1 command=C:\\applications\\nginx-1.22.1\\nginx.exe autostart=true autorestart=true stopsignal=TERM
- 编写启动的批处理脚本,示例如下:
@echo off start C:\supervisord\supervisord.exe /c C:\supervisord\supervisord.conf /d
修改nginx的配置
主要设置nginx为前台启动,修改nginx.conf
文件,在全局域中添加配置参数:
daemon off;
配置任务计划程序
windows的任务计划程序类似linux的crontab
- 创建任务,常规菜单中,名称任意,可填写"supervisor",描述任意,安全选项勾选"不管用户是否登录都要运行",可勾选"使用最高权限运行"
- 点击菜单栏"触发器",点击新建,开始任务切换为"启动时"
- 点击菜单栏"操作",点击新建,程序或脚本栏选择“安装supervisor - 第5步”中的批处理脚本路径
- 保存任务即可
- 若为测试环境,可重启服务器测试supervisor和nginx是否已自启