当前位置:首页 > 技术文章 > 正文内容

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

arlanguage5个月前 (12-15)技术文章41

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中断即可



扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/191.html

标签: nginx多目录
分享给朋友:

“Nginx实战-监控nginx.conf配置文件,配置文件修改自动重启nginx” 的相关文章

Docker安装Nginx教程使用实战教程

课件视频教程地址:Docker安装NginxDocker最新全部教程:Docker最新全系列教程Docker安装基本安装(不带数据卷)拉取Nginx镜像docker pull nginx:latest查看本地镜像列表(即可看到nginx)docker images运行容器docker run --n...

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.For online documentation and suppo...

nginx配置集群 -websocket

nginx配置集群 -websocket前几天做一个nginx的反向代理,来代理websocket。因为上线时间的问题,所以是单节点运行。现在准备做集群优化,然后上容器环境。这样就需要配置nginx的负载均衡。不废话了,下面是配置文件。当然配置后需要验证,验证的时候会出现很多奇怪的问题。这里就不进行...

nginx检查提示“unknown directive "stream" in /etc/*/nginx.conf”

yum安装nginx检查时提示“unknown directive "stream" in /etc/nginx/nginx.conf”yum安装nginx,在配置反代时,出现错误:nginx -tnginx: [emerg] unknown directive "strea...

K8S灰度环境频繁出现502 k8s ingress 灰度发布

公司一个需求版本开发、测试结束,升级到灰度环境之后频繁出现502公司使用的是php + nginx 所以分析也是按照这个方向来分析的。nginx报错:NGINX ERROR 10.9.95.75 !!!2020/07/21 17:05:12 [error] 7#7: *38808 recv() fa...

linux系统安全,多人共用服务器,防止别人干‘坏事’

我们知道,在开发一个应用的过程中,需要涉及代码、操作系统、网络和数据库等多个方面。所以,只是了解代码安全肯定是不够的,我们还需要了解常见的基础环境和工具中的安全机制,学会通过正确地配置这些安全机制,来提升安全保障。谈到 Linux,我相信你每天都在使用 Linux 进行各种开发和运维操作。但是,大多...