This commit is contained in:
vet
2026-04-21 12:24:04 +07:00
parent 67ab5f5ba5
commit 6eb89ad2a9
15 changed files with 421 additions and 170 deletions

View File

@@ -8,7 +8,7 @@
# 3. 安装 Node.js / npm前端依赖
# 4. 安装 Docker基础设施容器
# 5. 安装 etcdctl查看 Etcd 服务注册)
# 6. 安装 Nginx 并写入 PC/CMS/Build-CMS/OpenIM 反代(本机 HTTP :80外部 HTTPS 由 LB/CDN 终止)
# 6. 安装 Nginx 并写入 PC/CMS/Build-CMS/Build-Down/OpenIM 反代(本机 HTTP :80外部 HTTPS 由 LB/CDN 终止)
# 7. 写入 /etc/profile.d/deploy-env.sh永久生效
#
# 用法:
@@ -309,10 +309,10 @@ _install_etcdctl() {
}
# ──────────────────────────────────────────────────────────────────────────────
# 6. Nginx — PC / CMS / Build-CMS / OpenIM 统一入口(本机 HTTP :80
# 6. Nginx — PC / CMS / Build-CMS / Build-Down / OpenIM 统一入口(本机 HTTP :80
# ──────────────────────────────────────────────────────────────────────────────
_install_pc_nginx_proxy() {
step "安装 Nginx 并配置 OpenIM/PC/CMS/Build-CMS 反代"
step "安装 Nginx 并配置 OpenIM/PC/CMS/Build-CMS/Build-Down 反代"
if [[ "$(id -u)" -ne 0 ]]; then
error " Nginx 安装需 root请执行: sudo $0 nginx"
@@ -374,12 +374,34 @@ _install_pc_nginx_proxy() {
systemctl enable nginx 2>/dev/null || true
systemctl restart nginx
local health_failed=0
local host
for host in \
"$proxy_domain" \
"cms-jack.imharry.work" \
"build-jack.imharry.work" \
"down-jack.imharry.work"
do
if curl -fsS --max-time 3 -H "Host: ${host}" http://127.0.0.1/nginx-health >/dev/null 2>&1; then
success " Host 路由已生效: ${host}"
else
error " Host 路由检查失败: ${host}"
health_failed=1
fi
done
success " Nginx 反代已启用(配置: $conf_src"
info " 本机 Nginx 仅监听 TCP 80curl -sS -H 'Host: ${proxy_domain}' http://127.0.0.1/nginx-health 应返回 ok"
info " 外部 HTTPS 可由 LB/CDN/其它网关终止后转发到本机 :80"
info " PC 入口: https://${proxy_domain}/"
info " CMS 入口: http://cms-jack.imharry.work/"
info " Build CMS 入口: http://build-jack.imharry.work/"
info " PC 入口: https://${proxy_domain}/"
info " CMS 入口: http://cms-jack.imharry.work/"
info " Build CMS 入口: http://build-jack.imharry.work/"
info " Build Down 入口: http://down-jack.imharry.work/"
if [[ "$health_failed" -ne 0 ]]; then
error " Nginx 已重启,但部分 Host 路由校验失败,请检查 server_name / 默认站点 / 其它占用 :80 的配置"
return 1
fi
}
# all 时非 root 则跳过(不中断 Go/Node/Docker/etcdctl