监控nginx.conf配置文件,配置文件修改自动重启nginx

监控nginx.conf配置文件,配置文件修改自动重启nginx

文章资讯开源世界2021-07-22 9:42:283520A+A-

1.1 实现目标

  1. 在学习或者进行nginx测试的时候,耗费在 nginx -s reload/stop 上的命令时间很多,修改任意内容都需要重新启动或者停止启动,基本上状态就是在下面5个状态间来回切换

    • vim nginx.conf

    • 修改nginx.conf

    • 保存nginx.conf

    • 重启nginx

    • 刷新浏览器...

  2. 重启的这个时间其实我们可以用来做更多事情,比如更专注于内容而不是停止、重启,一般程序员不喜欢重复的东西

  3. 我们可以简化重启这一步骤,实现nginx.conf有任何修改就自动重启nginx,实现自动加载

  4. 下面我们就手摸手来实现nginx配置文件修改自动加载

  5. 【注意】:以下所有操作均基于Linux(centos7)版本,不适用于Windows

1.2 技术难度

  1. 技术难度:★★

  2. 原理难度:★

二、技术实现

2.1 所需技术

  1. Linux基本命令知识

  2. Linux Shell编程知识

2.2 技术原理

  1. 配置文件有修改,那么配置文件的修改时间一定会改变

  2. 那么我们可以记录修改时间,如果当前文件的修改时间和上次记录的修改时间不一致,绝壁是修改了配置文件,这个时候我们就可以执行nginx的重启命令,然后把当前时间作为最后一次修改时间

  3. 循环以上操作,就可以实现nginx配置文件有修改后自动加载最新配置文件

  4. 上面原理仅供参考,还有很多方式也可以实现,这种比较简单粗暴

2.3 脚本演示

  1. 启动脚本(参考脚本使用先写好shell脚本),将会进入等待

监控nginx.conf配置文件,配置文件修改自动重启nginx  新闻 第1张 2. 修改nginx.conf文件然后保存,然后可以看到配置文件重新加载 监控nginx.conf配置文件,配置文件修改自动重启nginx  新闻 第2张 3. 然后刷新浏览器看看,可以看到已经刷新,动态效果演示 监控nginx.conf配置文件,配置文件修改自动重启nginx  新闻 第3张 5. 欢迎各位朋友评论区留言

2.4 shell脚本

  1. 只需要修改下面的nginx安装路径即可

#!/bin/bash # nginx安装目录,结尾没有/ BASE_PATH="/opt/Nginx/nginx-1.8-1" # 配置文件位置 CONFIG_FILE="$BASE_PATH/conf/nginx.conf" # NGINX启动文件所在目录,结尾没有/ NGINX_PATH="$BASE_PATH/sbin" # 获取初始修改时间 last_time=`stat $CONFIG_FILE | grep "Modify"` stop=0 # 当前修改时间 current_time=""; # 死循环,可以根据需要更改 while [ $stop -le 1 ]; do  # 获取当前修改时间 current_time=`stat $CONFIG_FILE | grep "Modify"`  # 当前时间和上次修改时间是否一致,不一致则修改 if [ "$last_time" != "$current_time" ]; then echo "------------------ Config File Change ----------------" echo "Last_time $last_time" echo "Curr_time $current_time"  # 记录上次修改时间为当前时间 last_time=$current_time  # 进入nginx二进制文件目录 cd $NGINX_PATH  # 重新加载,加载的配置文件为上级的conf下的配置文件,根据自己修改 ./nginx -s reload  # 关闭后再重启,自定义配置文件目录,使用配置的文件路径  # ./nginx -s stop  # ./nginx -c $CONFIG_FILE   # 更多自定义操作... echo "------------------------------------------------------" fi done 复制代码

监控nginx.conf配置文件,配置文件修改自动重启nginx  新闻 第4张

三、脚本使用

  1. 新建shell脚本,例如

vim reload.sh 复制代码

  1. 把脚本拷贝进去

  2. 修改对应nginx路径然后保存脚本

  3. 修改权限

chmod 744 reload.sh 复制代码

  1. 启动脚本

./reload.sh 复制代码

  1. 启动之后当前窗口会进入等待状态,配置文件修改之后会自动加载,退出ctrl+c中断即可


Copyright 百搜科技 版权所有 精品源码推荐:http://github.crmeb.net/u/defu
#转载请注明出处!

点击这里复制本文地址 以上内容由开源世界整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

开源世界-开源独尊-开源中国-ThinkPHP-CRMEB-商城源码-项目下载站-CMS企业模板-互站网-悟空源码-A5资源网-CSDN-ASP300 © All Rights Reserved.  Copyright 开源世界 版权所有
Powered by 百搜科技 Themes by www.baisou.ltd
联系我们| 关于我们| 留言建议| 网站管理

分享:

支付宝

微信

嘿,欢迎咨询
请先 登录 再评论,若不是会员请先 注册