#!/bin/bash # 自动修改install.sh添加Cookie配置的脚本 set -e echo "=========================================" echo "install.sh Cookie配置自动修改脚本" echo "=========================================" echo "" # 检查文件是否存在 if [[ ! -f "install.sh" ]]; then echo "❌ 错误: install.sh文件不存在" exit 1 fi # 备份 echo "📦 备份install.sh..." cp install.sh install.sh.backup.$(date +%Y%m%d%H%M%S) echo "✅ 备份完成" echo "" # 检查是否已经修改过 if grep -q "Cookie传递配置" install.sh; then echo "ℹ️ 检测到install.sh已经包含Cookie配置" echo " 跳过修改" exit 0 fi echo "🔧 开始修改install.sh..." echo "" # 使用perl进行多行匹配和替换 perl -i -pe ' BEGIN { $cookie_config = "\n" . " # Cookie传递配置(验证码session需要)\n" . " proxy_set_header Cookie \$http_cookie;\n" . " proxy_pass_header Set-Cookie;"; } # 在 location /api 块中的 X-Forwarded-Proto 后添加Cookie配置 if (/proxy_set_header X-Forwarded-Proto \\\$scheme;/ && $in_api_block) { $_ .= $cookie_config . "\n"; $added_count++; } $in_api_block = 1 if /location \/api/; $in_api_block = 0 if /^\s*\}/; ' install.sh # 验证修改结果 count=$(grep -c "Cookie传递配置" install.sh || echo "0") echo "=========================================" echo "修改完成" echo "=========================================" echo "" echo "📊 修改统计:" echo " - 添加Cookie配置: $count 处" echo "" if [[ "$count" -eq 3 ]]; then echo "✅ 成功!修改了3处location /api配置" echo "" echo "修改位置:" grep -n "Cookie传递配置" install.sh | sed 's/^/ 行 /' echo "" echo "📝 建议:" echo " 1. 检查修改是否正确: diff install.sh.backup.* install.sh" echo " 2. 提交到Git: git add install.sh && git commit -m '添加Cookie配置'" echo " 3. 已部署的服务需要手动更新Nginx配置" elif [[ "$count" -gt 0 ]]; then echo "⚠️ 警告: 只修改了 $count 处,预期应该是3处" echo " 请手动检查install.sh文件" else echo "❌ 错误: 修改失败,没有添加任何Cookie配置" echo " 请查看 INSTALL_SH_UPDATE.md 手动修改" fi echo ""