#!/bin/sh # 优先使用环境变量 API_TARGET,否则从构建时提取的文件读取 VITE_BASE_API API_TARGET=${API_TARGET:-""} if [ -z "$API_TARGET" ] && [ -f /etc/nginx/.api_target ]; then API_TARGET=$(cat /etc/nginx/.api_target | tr -d '\r') fi CONF_FILE="/etc/nginx/conf.d/default.conf" if [ -n "$API_TARGET" ]; then # 提取路径部分(去掉协议和域名) API_NO_PROTO=$(echo "$API_TARGET" | sed 's|^https\?://||') API_PATH=$(echo "$API_NO_PROTO" | sed 's|^[^/]*||') # 如果路径为空,默认 /api if [ -z "$API_PATH" ] || [ "$API_PATH" = "/" ]; then API_PATH="/api" fi # 确保 proxy_pass 末尾有 / API_TARGET_SLASH="${API_TARGET%/}/" # 替换 nginx 配置占位符 sed -i "s|@@API_LOCATION@@|${API_PATH}/|g" "$CONF_FILE" sed -i "s|@@API_TARGET@@|${API_TARGET_SLASH}|g" "$CONF_FILE" else # 没有 API 目标,移除代理配置块 sed -i '/# BEGIN_API_PROXY/,/# END_API_PROXY/d' "$CONF_FILE" fi nginx -g "daemon off;"