feat: 配置简化为同源相对路径,统一 /api/ 路由约定
配合 zTools2 路由统一到 /api/,简化环境感知配置:
- app.config.js:去掉 BASE_URL 的 dev/prod 分支,iframe 与探针一律用同源相对路径
(/api/pdf、/api/health、/api/wb-page/{id}),默认空 baseUrl;保留 VITE_API_BASE 覆盖。
这样无论 dev(vite proxy)还是任意部署环境(反代),同源相对路径都自动指向当前环境 zTools2,
不再误打到 f.zikai.wang 等其它环境域名。
- vite.config.js:dev proxy 从 /api /pdf /health /static /upload /files /wb /ws 多条
简化为单条 /api(含 ws:true,覆盖 /api/ws WebSocket)。
- deploy.sh:Apache vhost 从多条 ProxyPass 简化为单条 /api/,a2enmod 增加 proxy_wstunnel。
- docs/deployment.md:更新拓扑/模式说明,新增路由约定(所有入口在 /api/ 下,反代只需一条规则)。
- 同步更新 zPDF_package 子模块指针(其 vite proxy 亦简化为单条 /api)。
This commit is contained in:
29
deploy.sh
29
deploy.sh
@@ -3,7 +3,7 @@
|
||||
#
|
||||
# 生产拓扑:
|
||||
# Apache(:80) -> 静态文件 /var/www/html(zMainPage 构建产物)
|
||||
# -> 反代 /api、/pdf、/pdf-admin、/ws 等到 zTools2(127.0.0.1:6867)
|
||||
# -> 反代 /api/ 到 zTools2(127.0.0.1:6867)(页面/静态/探针/WS/API 全在 /api/ 下)
|
||||
# zTools2(127.0.0.1:6867) -> MySQL(3306) + uploads/ 磁盘
|
||||
#
|
||||
# 前提:zMainPage 与 zTools2 在同一主机(zMainPage 父项目,zTools2 同级目录)。
|
||||
@@ -49,34 +49,19 @@ HT
|
||||
sudo cp /tmp/zmainpage_htaccess "$WEB_ROOT/.htaccess"
|
||||
|
||||
echo "==> [3/4] 配置 Apache 反代(zMainPage -> zTools2)"
|
||||
# 确保 proxy / rewrite / headers 模块启用
|
||||
sudo a2enmod proxy proxy_http rewrite headers >/dev/null 2>&1 || true
|
||||
# 确保 proxy / rewrite / headers / proxy_wstunnel(WebSocket)模块启用
|
||||
sudo a2enmod proxy proxy_http proxy_wstunnel rewrite headers >/dev/null 2>&1 || true
|
||||
# 写入 vhost 配置(仅当不存在时,避免覆盖已有 HTTPS 配置)
|
||||
VHOST="/etc/apache2/sites-available/zmainpage.conf"
|
||||
if [[ ! -f "$VHOST" ]]; then
|
||||
sudo tee "$VHOST" >/dev/null <<'VH'
|
||||
<VirtualHost *:80>
|
||||
DocumentRoot /var/www/html
|
||||
# zTools2 反代:/api、/pdf、/pdf-admin、/static、/upload、/files、/wb、/ws 等转发到后端
|
||||
# zTools2 反代:所有入口(页面/静态/探针/WS/API)统一在 /api/ 下,一条规则即可;
|
||||
# WebSocket 走 /api/ws/wb/{id},由 proxy_wstunnel 透传 Upgrade 头
|
||||
ProxyPreserveHost On
|
||||
ProxyPass /api/ http://127.0.0.1:6867/api/
|
||||
ProxyPassReverse /api/ http://127.0.0.1:6867/api/
|
||||
ProxyPass /pdf http://127.0.0.1:6867/pdf
|
||||
ProxyPassReverse /pdf http://127.0.0.1:6867/pdf
|
||||
ProxyPass /pdf-admin http://127.0.0.1:6867/pdf-admin
|
||||
ProxyPassReverse /pdf-admin http://127.0.0.1:6867/pdf-admin
|
||||
ProxyPass /static/ http://127.0.0.1:6867/static/
|
||||
ProxyPassReverse /static/ http://127.0.0.1:6867/static/
|
||||
ProxyPass /upload http://127.0.0.1:6867/upload
|
||||
ProxyPassReverse /upload http://127.0.0.1:6867/upload
|
||||
ProxyPass /files http://127.0.0.1:6867/files
|
||||
ProxyPassReverse /files http://127.0.0.1:6867/files
|
||||
ProxyPass /wb http://127.0.0.1:6867/wb
|
||||
ProxyPassReverse /wb http://127.0.0.1:6867/wb
|
||||
ProxyPass /wb-admin http://127.0.0.1:6867/wb-admin
|
||||
ProxyPassReverse /wb-admin http://127.0.0.1:6867/wb-admin
|
||||
ProxyPass /health http://127.0.0.1:6867/health
|
||||
ProxyPassReverse /health http://127.0.0.1:6867/health
|
||||
# SPA 回退:非文件非目录的请求回退到 index.html
|
||||
<Directory /var/www/html>
|
||||
AllowOverride All
|
||||
@@ -103,5 +88,5 @@ fi
|
||||
echo
|
||||
echo "部署完成。"
|
||||
echo " - zMainPage: http://localhost(Apache :80,静态文件 + SPA)"
|
||||
echo " - zTools2: http://127.0.0.1:6867(经 Apache 反代 /api /pdf 等)"
|
||||
echo " - PDF 页签: http://localhost/pdf -> iframe 同源嵌入 zTools2 /pdf"
|
||||
echo " - zTools2: http://127.0.0.1:6867(经 Apache 反代 /api/)"
|
||||
echo " - PDF 页签: http://localhost -> iframe 同源嵌入 zTools2 /api/pdf"
|
||||
|
||||
Reference in New Issue
Block a user