generated from duanshuwen/webapp-vue-frontend
34 lines
984 B
Bash
34 lines
984 B
Bash
#!/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;"
|