nginx配置X-Forwarded-For时sed和awk的使用技巧
知识点:
1、匹配偶数行:awk -F':' '!(NR%2){print $1}'
2、匹配行后插入:sed -i "${NUM}a\ proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;" ${conf_path}
完整脚本如下:
#!/bin/bash
export PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
conf_path="/usr/local/nginx/conf/nginx.conf"
XFF=$(grep 'X-Forwarded-For' ${conf_path})
if [ "${XFF}" ];then
echo "X-Forwarded-For已配置"
exit 0
fi
cp ${conf_path} /tmp/nginx.conf.bak
LINE_NUM=$(grep -n 'proxy_set_header X-Real-IP' ${conf_path}|awk -F':' '!(NR%2){print $1}')
#LINE_NUM 总共4行
flg=0
for NUM in ${LINE_NUM}
do
if [ "${flg}" -eq 1 ];then
NEW_NUM=$((${NUM}+1))
sed -i "${NEW_NUM}a\ proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;" ${conf_path}
else
sed -i "${NUM}a\ proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;" ${conf_path}
fi
((flg++))
done
cd /usr/local/nginx/op/;./reload.sh && exit 0 || exit 1
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。