# 勤务系统 2.0 Demo 部署说明(给运维) 本系统没有独立业务库、没有 Java / Node 后端。解压后是一个 Vue 静态站(管理后台 / 指挥大屏 / 作业端 H5)。 业务数据在现有数据中台。中台账号已写进前端,页面打开后会自己登录。 运维只需要:把 `dist/` 交给 Nginx,并按样例反代 OAuth、DMS 两个地址。 ## 包内文件 - `dist/` 前端静态资源 - `nginx.conf.example` Nginx 样例(改两处 upstream 即可) ## 服务器要求 - Nginx(能访问中台网关) - 不必装 Node、不必配中台账号、不必配 .env 默认网关(与样例一致,按实际改): - OAuth:`http://121.43.55.7:2101/proxy_oauth/...` - DMS:`http://121.43.55.7:2101/proxy_dms/...` ## 部署步骤 1. 解压到例如 `/opt/shba-duty/`,保证存在 `/opt/shba-duty/dist/index.html`。 2. 把 `nginx.conf.example` 拷到 Nginx(例如 `/etc/nginx/conf.d/shba-duty.conf`)。 3. **只改文件顶部两个 upstream**: ``` upstream shba_oauth { server 121.43.55.7:2101; # OAuth 网关主机:端口 } upstream shba_dms { server 121.43.55.7:2101; # DMS 网关主机:端口 } ``` 两个经常是同一台网关。不要改 `location /proxy_oauth/`、`/proxy_dms/` 路径名(前端按这两个路径请求)。 4. `root` 指到本包 `dist/`。`server_name` / `listen` 按现网改。 5. `nginx -t && nginx -s reload`。 6. 浏览器打开站点,顶栏应变为「中台数据」。若是「内存样本」,多半是反代地址不通或路径被改掉。 ## 必须保留的反代 | 浏览器路径 | 转到 | | --- | --- | | `/proxy_oauth/` | OAuth 网关(含 `POST /proxy_oauth/user/login`) | | `/proxy_dms/` | DMS 网关(内容 CRUD、`/file/uploadFile`、`/static/` 附件) | | 其它 | `try_files` 回落到 `index.html`(History 路由) | - `client_max_body_size` 建议 32m(附件) - 超时建议 120s(拉栏目较慢) - 不要改写 `Content-Type`(上传是 multipart,boundary 必须原样转发) - `/proxy_dms/` 需要把请求头 `Token` 或 Cookie `DmsToken` 转成上游 `Token`(样例已写) ## 打开地址 - 入口 `/` - 登录 `/login` - 管理后台 `/admin/workbench` - 指挥大屏 `/screen/duty` - 作业端 `/mp/punch` 地图瓦片由浏览器直连高德/GeoQ,不经本机 Nginx。若甲方内网不能出公网,地图底图会空白,业务功能仍可用。 ## 不要做的事 - 不要再套一层 Node / Java 去代登录 - 不要把 `/proxy_dms` 反代成别的路径名(前端不会跟着改) - 不要用 `vite` 开发服务当生产(本包已是 `vite build` 产物)