Files
project57-x/docker-entrypoint.d/40-a-upstream.sh
T
mdszxy 8a28342a81
CI Pipeline / check-commit (push) Successful in 6s
CI Pipeline / deploy-only (push) Has been skipped
CI Pipeline / build (push) Successful in 22s
CI Pipeline / deploy (push) Successful in 19s
fix: proxy embed to A public host with correct Host/SNI [deploy]
2026-10-06 00:17:49 +08:00

28 lines
846 B
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/sh
set -eu
CONF=/etc/nginx/conf.d/default.conf
# A 站已有公网域名时走公网更稳;也可设为集群内 http://service.ns.svc:port
A_UPSTREAM="${A_UPSTREAM:-https://project57.website-build.org}"
A_UPSTREAM="${A_UPSTREAM%/}"
# 从 URL 提取 Host,供反代 Host / SNI(Cloudflare/Ingress 依赖正确 Host)
A_HOST="$(printf '%s' "${A_UPSTREAM}" | sed -E 's|^[a-zA-Z][a-zA-Z0-9+.-]*://||; s|[:/].*$||')"
if [ -z "${A_HOST}" ]; then
A_HOST=project57.website-build.org
fi
NS="$(awk '/^nameserver/{print $2; exit}' /etc/resolv.conf || true)"
if [ -z "${NS}" ]; then
NS=kube-dns.kube-system.svc.cluster.local
fi
sed -i \
-e "s|__RESOLVER__|${NS}|g" \
-e "s|__A_UPSTREAM__|${A_UPSTREAM}|g" \
-e "s|__A_HOST__|${A_HOST}|g" \
"${CONF}"
echo "nginx upstream: ${A_UPSTREAM} (Host ${A_HOST}, resolver ${NS})"
nginx -t