test
This commit is contained in:
@@ -259,6 +259,9 @@ _install_pc_nginx_proxy() {
|
||||
local conf_src="${script_dir}/nginx/openim-pc-proxy.conf"
|
||||
local conf_name="openim-pc-proxy.conf"
|
||||
local proxy_domain="${PC_PROXY_DOMAIN:-cms-jack.imharry.work}"
|
||||
local repo_root
|
||||
repo_root="$(cd "${script_dir}/.." && pwd)"
|
||||
local sdk_static_dir="/var/www/openim-pc-sdk"
|
||||
|
||||
if [[ -f "$ENV_FILE" ]]; then
|
||||
# shellcheck source=/dev/null
|
||||
@@ -271,6 +274,32 @@ _install_pc_nginx_proxy() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
info " 准备 OpenIM WASM SDK 静态资源: ${sdk_static_dir}"
|
||||
mkdir -p "$sdk_static_dir"
|
||||
local sdk_lib_dir="${repo_root}/pc/node_modules/@openim/wasm-client-sdk/lib"
|
||||
local sdk_assets_dir="${repo_root}/pc/node_modules/@openim/wasm-client-sdk/assets"
|
||||
local pc_public_dir="${repo_root}/pc/public"
|
||||
local asset src
|
||||
for asset in worker.js worker-legacy.js; do
|
||||
src="${sdk_lib_dir}/${asset}"
|
||||
if [[ -s "$src" ]]; then
|
||||
install -m 0644 "$src" "${sdk_static_dir}/${asset}"
|
||||
success " 已安装 SDK worker: ${sdk_static_dir}/${asset}"
|
||||
else
|
||||
warn " 缺少 SDK worker: $src(请先执行 ./deploy-test/06-install-frontend.sh pc)"
|
||||
fi
|
||||
done
|
||||
for asset in openIM.wasm sql-wasm.wasm wasm_exec.js; do
|
||||
src="${pc_public_dir}/${asset}"
|
||||
[[ -s "$src" ]] || src="${sdk_assets_dir}/${asset}"
|
||||
if [[ -s "$src" ]]; then
|
||||
install -m 0644 "$src" "${sdk_static_dir}/${asset}"
|
||||
success " 已安装 SDK 资源: ${sdk_static_dir}/${asset}"
|
||||
else
|
||||
warn " 缺少 SDK 资源: ${asset}(请先执行 ./deploy-test/06-install-frontend.sh pc && ./deploy-test/07-start-frontend.sh pc)"
|
||||
fi
|
||||
done
|
||||
|
||||
if ! _has nginx; then
|
||||
if _has apt-get; then
|
||||
apt-get update -y
|
||||
|
||||
@@ -314,6 +314,7 @@ TENCENT_SDK_SECRET_KEY=xxx
|
||||
| `/api/im/` | `127.0.0.1:10002` |
|
||||
| `/api/user/`、`/api/chat/` | `127.0.0.1:10008` |
|
||||
| `/msg_gateway` | `127.0.0.1:10001`(WebSocket) |
|
||||
| `/openIM.wasm`、`/sql-wasm.wasm`、`/wasm_exec.js`、`/node_modules/@openim/wasm-client-sdk/lib/worker*.js` | `/var/www/openim-pc-sdk`(OpenIM WASM SDK 静态资源) |
|
||||
| `/` | `127.0.0.1:5173`(PC Vite dev server) |
|
||||
|
||||
1. 服务器上已执行 `05-start.sh` 等,保证 `10001/10002/10008` 在监听。
|
||||
@@ -325,6 +326,8 @@ TENCENT_SDK_SECRET_KEY=xxx
|
||||
|
||||
**域名访问**:本配置中 `openim-pc-proxy` 使用 `server_name cms-jack.imharry.work`,只监听本机 `80`;推荐外部 `GET /` 走 `https://cms-jack.imharry.work/`,由外层 HTTPS 入口转发到本机 `80` 后代理 PC Vite。`00-init-tools.sh nginx` 会禁用 `sites-enabled/default`,并尝试去掉 `sites-available/default` 里的 `default_server`,避免默认站点抢占 `:80`。若机上还有其它站点也写了 `default_server`,`nginx -t` 会报错,需在该站点配置中删除 `default_server`(保留 `listen 80;` 即可)。
|
||||
|
||||
**PC WASM SDK 资源**:`00-init-tools.sh nginx` 会把 `pc/node_modules/@openim/wasm-client-sdk/lib/worker.js`、`worker-legacy.js` 以及 `openIM.wasm`、`sql-wasm.wasm`、`wasm_exec.js` 复制到 `/var/www/openim-pc-sdk`,并由 Nginx 直接返回这些文件。这样可以绕开 PC Vite dev server 里用于规避 MIME 报错的 `worker.js` placeholder,避免浏览器端 OpenIM SDK 卡在 worker 初始化阶段,导致不发起 `/api/im` 和 `/msg_gateway` 请求。更新 `pc` 依赖或 SDK 后,请重新执行 `sudo ./deploy-test/00-init-tools.sh nginx` 同步静态资源。
|
||||
|
||||
### Docker 基础设施
|
||||
|
||||
| 服务 | 端口 |
|
||||
|
||||
@@ -110,6 +110,44 @@ server {
|
||||
return 200 "ok\n";
|
||||
}
|
||||
|
||||
# OpenIM WASM SDK 关键资源。
|
||||
# Vite dev server 中有 worker.js placeholder 中间件,会导致 SDK worker 启动失败;
|
||||
# 这里直接由 Nginx 从稳定目录提供真实文件,绕过 Vite。
|
||||
location = /openIM.wasm {
|
||||
alias /var/www/openim-pc-sdk/openIM.wasm;
|
||||
default_type application/wasm;
|
||||
add_header Cross-Origin-Opener-Policy "same-origin" always;
|
||||
add_header Cross-Origin-Embedder-Policy "credentialless" always;
|
||||
}
|
||||
|
||||
location = /sql-wasm.wasm {
|
||||
alias /var/www/openim-pc-sdk/sql-wasm.wasm;
|
||||
default_type application/wasm;
|
||||
add_header Cross-Origin-Opener-Policy "same-origin" always;
|
||||
add_header Cross-Origin-Embedder-Policy "credentialless" always;
|
||||
}
|
||||
|
||||
location = /wasm_exec.js {
|
||||
alias /var/www/openim-pc-sdk/wasm_exec.js;
|
||||
default_type application/javascript;
|
||||
add_header Cross-Origin-Opener-Policy "same-origin" always;
|
||||
add_header Cross-Origin-Embedder-Policy "credentialless" always;
|
||||
}
|
||||
|
||||
location = /node_modules/@openim/wasm-client-sdk/lib/worker.js {
|
||||
alias /var/www/openim-pc-sdk/worker.js;
|
||||
default_type application/javascript;
|
||||
add_header Cross-Origin-Opener-Policy "same-origin" always;
|
||||
add_header Cross-Origin-Embedder-Policy "credentialless" always;
|
||||
}
|
||||
|
||||
location = /node_modules/@openim/wasm-client-sdk/lib/worker-legacy.js {
|
||||
alias /var/www/openim-pc-sdk/worker-legacy.js;
|
||||
default_type application/javascript;
|
||||
add_header Cross-Origin-Opener-Policy "same-origin" always;
|
||||
add_header Cross-Origin-Embedder-Policy "credentialless" always;
|
||||
}
|
||||
|
||||
# PC Vite dev server.
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:5173;
|
||||
|
||||
Reference in New Issue
Block a user