监控nginx.conf配置文件,配置文件修改自动重启nginx
1.1 实现目标
- 在学习或者进行nginx测试的时候,耗费在 nginx -s reload/stop 上的命令时间很多,修改任意内容都需要重新启动或者停止启动,基本上状态就是在下面5个状态间来回切换
- vim nginx.conf
- 修改nginx.conf
- 保存nginx.conf
- 重启nginx
- 刷新浏览器...
- 重启的这个时间其实我们可以用来做更多事情,比如更专注于内容而不是停止、重启,一般程序员不喜欢重复的东西
- 我们可以简化重启这一步骤,实现nginx.conf有任何修改就自动重启nginx,实现自动加载
- 下面我们就手摸手来实现nginx配置文件修改自动加载
- 【注意】:以下所有操作均基于Linux(centos7)版本,不适用于windows
1.2 技术难度
- 技术难度:★★
- 原理难度:★
二、技术实现
2.1 所需技术
- Linux基本命令知识
- Linux Shell编程知识
2.2 技术原理
- 配置文件有修改,那么配置文件的修改时间一定会改变
- 那么我们可以记录修改时间,如果当前文件的修改时间和上次记录的修改时间不一致,绝壁是修改了配置文件,这个时候我们就可以执行nginx的重启命令,然后把当前时间作为最后一次修改时间
- 循环以上操作,就可以实现nginx配置文件有修改后自动加载最新配置文件
- 上面原理仅供参考,还有很多方式也可以实现,这种比较简单粗暴
2.3 脚本演示
- 启动脚本(参考脚本使用先写好shell脚本),将会进入等待
2. 修改nginx.conf文件然后保存,然后可以看到配置文件重新加载
3. 然后刷新浏览器看看,可以看到已经刷新,动态效果演示
5. 欢迎各位朋友评论区留言
2.4 shell脚本
- 只需要修改下面的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
复制代码
三、脚本使用
- 新建shell脚本,例如
vim reload.sh
复制代码
- 把脚本拷贝进去
- 修改对应nginx路径然后保存脚本
- 修改权限
chmod 744 reload.sh
复制代码
- 启动脚本
./reload.sh
复制代码
- 启动之后当前窗口会进入等待状态,配置文件修改之后会自动加载,退出ctrl+c中断即可
创作不易,如果对大家有所帮助,希望大家点赞支持,有什么问题也可以在评论区里讨论😄~

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
你的站点抗压么?推荐一款超方便的开源压测工具
作者:HelloGitHub-Anthony 这里是 HelloGitHub 推出的《讲解开源项目》系列,本期介绍一款标星 17.7k 纯 Go 语言实现的 HTTP(S) 压测工具——vegeta > 项目地址:https://github.com/tsenart/vegeta Vegeta 是一款用 Go 语言编写的多功能 HTTP(S) 压测工具:安装方便、功能齐全、使用简单,还可作为命令行工具或者开发库进行使用。它不仅提供了常见的压测功能,还支持格式化结果并输出为图表或动态显示当前结果。 通过本文你将掌握这款强大压测工具的基本用法,让压测只需一条命令! 一、 安装 从仓库下载编译好的二进制文件: > https://github.com/tsenart/vegeta/releases PC 上下载 amd64 版本即可,在 Mac Os X 上使用 Homebrew 安装: $ brew update && brew install vegeta 如果你会 Go 语言,使用 get 自动安装: $ go get -u github.c...
-
下一篇
Online Judge v1.1.280 发布,ACM 在线判题系统
Online Judge v1.1.280 已经发布,ACM在线判题系统 此版本更新内容包括: 1、扩展web与judger通信消息长度支持8字节。 (升级需要注意) 如:长度由0x0150变为0x00000150 abcddcba000200000150{"language_id":"4","time":"","session_id":"EB804425B5B92A2F433ED26CF1738BF4","problem_id":"1000","input":"1 2","verdict":"","code":"#include <stdio.h>\r\nint main(void)\r\n{\r\n int a,b;\r\n while(scanf(\"69277786928600\", &a,&b) != EOF)\r\n printf(\"0\\n\",a+b+1);\r\n return 0;\r\n}","output":"","compile_error":"","memory":""} 2、web端题目和提交界面合并,可伸缩 详情查看...
相关文章
文章评论
共有0条评论来说两句吧...