forked from admin/PlantAI-rag-new
- deploy/nginx/plantai.conf(新): 80 反代 127.0.0.1:8090 模板,SSE 长连接 (buffering off/read_timeout 3600s>看门狗 1200s)+大文件上传 (client_max_body_size 0/request_buffering off/send_timeout 600s)适配 - 绑定脚本: bff_restart.sh/sdk/run.sh/start-dev.sh 默认 0.0.0.0→127.0.0.1 (nginx 80 为唯一客户入口);build_all.sh start_all heredoc 同改+nginx 模板入包 install/nginx/ - DEPLOY_FLOW.md: §0 绑定策略更新+nginx 模板位置;新增 §5b 从零安装 nginx(apt/yum 探测→放模板→nginx -t→启用→防火墙→先 nginx 后改绑的 切换顺序→内网验证);§6 质检增 nginx 专项(进程/80 监听/经 80 首页+SSE 冒烟+上传冒烟);§7 注明现网仍是 0.0.0.0:8090 直连形态待按 §5b 迁移 纪律: 仅新增与修改,未在目标机/现网执行任何 nginx 安装或改绑操作。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
46 lines
2.0 KiB
Bash
Executable File
46 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
||
# deploy/bff_restart.sh —— 远端 BFF 重启(PM 使用,在远端执行)
|
||
# 用法:ssh 192.168.0.175 -p 26518 'bash ~/5090/teamWorkspace/zh/PlantAI-rag-new/deploy/bff_restart.sh [bind_addr]'
|
||
# 参数:可选绑定地址(默认 127.0.0.1——nginx 80 为唯一客户入口,BFF 仅本机;无 nginx 的旧形态可显式传 0.0.0.0)
|
||
# 要点:用 setsid 完全脱离 SSH 会话,stdout/stderr 全部落日志。
|
||
# 2026-09-01 统一 Python:conda plantai-bff → plantai-rag-new-venv(py3.12.13)
|
||
set -uo pipefail
|
||
SDK_ROOT="/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-deploy-unified/sdk"
|
||
PYTHON="/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python"
|
||
BIND="${1:-127.0.0.1}"
|
||
[[ -x "$PYTHON" ]] || { echo "BFF Python 不可执行: $PYTHON" >&2; exit 1; }
|
||
|
||
# 杀旧进程:按 8090 端口精确匹配(TL 2026-09-06 修——
|
||
# 旧 pkill 模式 "app.main:app" 会误杀 8098 生信服务,两者同为 uvicorn app.main:app)
|
||
if command -v lsof >/dev/null 2>&1; then
|
||
OLD_PID="$(lsof -ti tcp:8090 2>/dev/null || true)"
|
||
[ -n "$OLD_PID" ] && kill "$OLD_PID" 2>/dev/null || true
|
||
else
|
||
pkill -f "[a]pp.main:app.*--port 8090" 2>/dev/null || true
|
||
fi
|
||
sleep 2
|
||
|
||
cd "$SDK_ROOT"
|
||
# 加载运行时凭据(sdk/.env,不入 git)并导出给应用进程。
|
||
# pydantic-settings 会把 .env 载入 settings 对象,但 services/neo4j.py 的
|
||
# _env() 直接读 os.environ,故需显式 set -a 导出。
|
||
set -a
|
||
[ -f .env ] && source .env
|
||
set +a
|
||
setsid "$PYTHON" -m uvicorn app.main:app --host "$BIND" --port 8090 \
|
||
> /tmp/plantai-bff.log 2>&1 < /dev/null &
|
||
disown
|
||
|
||
sleep 12
|
||
if ss -tln | grep -q ":8090 "; then
|
||
echo "BFF UP ($BIND:8090, venv py3.12.13)"
|
||
curl -s --max-time 20 http://127.0.0.1:8090/api/health | head -c 200
|
||
echo
|
||
# 生产形态:静态托管 ui/dist(存在时 BFF 单进程服务整个前端)
|
||
curl -s --max-time 10 http://127.0.0.1:8090/ | grep -o "<title>[^<]*" || echo "(静态托管未生效,需同步 dist)"
|
||
else
|
||
echo "BFF FAIL —— 日志尾部:"
|
||
tail -15 /tmp/plantai-bff.log
|
||
exit 1
|
||
fi
|