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