shell动态修改nginx的中cookie版本号

2019-09-26  本文已影响0人  anyly

1.背景:

cookie中有一个js的版本号,是通过nginx配置的,后续所有的js请求都会带上这个版本号
例如: 127.0.0.1/project/static/js/main.js?gillion-res-version=123456789
我们部署前端后想自动把版本号+1,每次修改nginx配置麻烦,如果是多台机器更复杂
所以弄成自动化部署

#!/bin/bash
function startnginx (){
        /usr/sbin/nginx -c $ngfile
        if [[ $? = '0' ]];then
                echo "nginx启动成功!"
        else
                echo "nginx启动失败!"
        fi
}
ngfile="/etc/nginx/nginx.conf"
parame=`cat $ngfile |grep 'add_header Set-Cookie "js-version' | awk -F"=" '{print $2}' | awk -F";" '{print $1}' | xargs -I {} echo {}`
update=$(($parame+1))
echo "修改前的版本号:$parame"
sleep 1
sed -ie "s/$parame/$update/g" $ngfile
afterVersion=`cat $ngfile |grep 'add_header Set-Cookie "js-version' | awk -F"=" '{print $2}' | awk -F";" '{print $1}'`
echo "修改后的版本号:$afterVersion"
if [ $parame != $afterVersion ];then
    echo "停止启用的nginx"
    pids=`ps -C nginx -o pid | awk '{if (NR>1){print $1}}'`
    if  [ ! -n "$pids" ] ;then
        echo "未启动nginx,马上启动!"
        startnginx
                exit 1
    else
        for  pid  in  $pids
            do
                     kill -9 $pid
            done
        startnginx
    fi
else
    echo "版本号修改失败!"
fi
上一篇下一篇

猜你喜欢

热点阅读