防止开发人员随意篡改nginx测试服务端口

2019-05-28  本文已影响0人  夏国栋
背景:测试环境为共用环境,开发在测试自己的分支时,喜欢直接修改Nginx配置,把端口改为自己分支环境的服务端口
解决方法:实时监控Nginx配置(nginx.conf),发现指定行被修改后,立即回退到上次修改
流程:

1.手动备份一份最新可用的Nginx配置文件
2.启动脚本:nohup ./check_diff.sh &
3.脚本每10秒diff当前配置和备份配置
4.检查diff出的结果,如果发现包含“> fastcgi_pass 127.0.0.1:12345”,则需回退
5.如果不包含,则需更新备份配置
监控脚本:

while true;
do  
    diff /etc/nginx/nginx.conf /etc/nginx/nginx.conf.xgd > diff_res
    if [ $? -ne 0 ];
    then
        date "+%Y-%m-%d %H:%M:%S" >> ./check_diff.log
        echo '------start------' >> ./check_diff.log
        cat diff_res >> ./check_diff.log
        grep '^>[[:blank:]]*fastcgi_pass[[:blank:]]*127.0.0.1:12345' diff_res > /dev/null
        if [ $? -eq 0 ];
        then
            echo '非法更改,回退!!!' >> ./check_diff.log
            cp /etc/nginx/nginx.conf.xgd /etc/nginx/nginx.conf  
            nginx -s reload
        else
            echo '合法更改,更新备份文件。' >> ./check_diff.log
            cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.xgd
        fi
        echo '------end------\n\n' >> ./check_diff.log
    fi
    sleep 10
done
上一篇下一篇

猜你喜欢

热点阅读