百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

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

ztj100 2025-03-26 19:21 15 浏览 0 评论

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脚本),将会进入等待

2. 修改nginx.conf文件然后保存,然后可以看到配置文件重新加载

3. 然后刷新浏览器看看,可以看到已经刷新。

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

三、脚本使用

  1. 新建shell脚本,例如
vim reload.sh
  1. 把脚本拷贝进去
  2. 修改对应nginx路径然后保存脚本
  3. 修改权限
chmod 744 reload.sh
  1. 启动脚本
./reload.sh
  1. 启动之后当前窗口会进入等待状态,配置文件修改之后会自动加载,退出ctrl+c中断即可



相关推荐

使用 Pinia ORM 管理 Vue 中的状态

转载说明:原创不易,未经授权,谢绝任何形式的转载状态管理是构建任何Web应用程序的重要组成部分。虽然Vue提供了管理简单状态的技术,但随着应用程序复杂性的增加,处理状态可能变得更具挑战性。这就是为什么...

Vue3开发企业级音乐Web App 明星讲师带你学习大厂高质量代码

Vue3开发企业级音乐WebApp明星讲师带你学习大厂高质量代码下栽课》jzit.top/392/...

一篇文章说清 webpack、vite、vue-cli、create-vue 的区别

webpack、vite、vue-cli、create-vue这些都是什么?看着有点晕,不要怕,我们一起来分辨一下。...

超赞 vue2/3 可视化打印设计VuePluginPrint

今天来给大家推荐一款非常不错的Vue可拖拽打印设计器Hiprint。引入使用//main.js中引入安装import{hiPrintPlugin}from'vue-plugin-...

搭建Trae+Vue3的AI开发环境(vue3 ts开发)

从2024年2025年,不断的有各种AI工具会在自媒体中火起来,号称各种效率王炸,而在AI是否会替代打工人的话题中,程序员又首当其冲。...

如何在现有的Vue项目中嵌入 Blazor项目?

...

Vue中mixin怎么理解?(vue的mixins有什么用)

作者:qdmryt转发链接:https://mp.weixin.qq.com/s/JHF3oIGSTnRegpvE6GSZhg前言...

Vue脚手架安装,初始化项目,打包并用Tomcat和Nginx部署

1.创建Vue脚手架#1.在本地文件目录创建my-first-vue文件夹,安装vue-cli脚手架:npminstall-gvue-cli安装过程如下图所示:创建my-first-vue...

新手如何搭建个人网站(小白如何搭建个人网站)

ElementUl是饿了么前端团队推出的桌面端UI框架,具有是简洁、直观、强悍和低学习成本等优势,非常适合初学者使用。因此,本次项目使用ElementUI框架来完成个人博客的主体开发,欢迎大家讨论...

零基础入门vue开发(vue快速入门与实战开发)

上面一节我们已经成功的安装了nodejs,并且配置了npm的全局环境变量,那么这一节我们就来正式的安装vue-cli,然后在webstorm开发者工具里运行我们的vue项目。这一节有两种创建vue项目...

.net core集成vue(.net core集成vue3)

react、angular、vue你更熟悉哪个?下边这个是vue的。要求需要你的计算机安装有o.netcore2.0以上版本onode、webpack、vue-cli、vue(npm...

使用 Vue 脚手架,为什么要学 webpack?(一)

先问大家一个很简单的问题:vueinitwebpackprjectName与vuecreateprojectName有什么区别呢?它们是Vue-cli2和Vue-cli3创建...

vue 构建和部署(vue项目部署服务器)

普通的搭建方式(安装指令)安装Node.js检查node是否已安装,终端输入node-v会使用命令行(安装)npminstallvue-cli-首先安装vue-clivueinitwe...

Vue.js 环境配置(vue的环境搭建)

说明:node.js和vue.js的关系:Node.js是一个基于ChromeV8引擎的JavaScript运行时环境;类比:Java的jvm(虚拟机)...

vue项目完整搭建步骤(vuecli项目搭建)

简介为了让一些不太清楚搭建前端项目的小白,更快上手。今天我将一步一步带领你们进行前端项目的搭建。前端开发中需要用到框架,那vue作为三大框架主流之一,在工作中很常用。所以就以vue为例。...

取消回复欢迎 发表评论: