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_src="${script_dir}/nginx/openim-pc-proxy.conf"
|
||||||
local conf_name="openim-pc-proxy.conf"
|
local conf_name="openim-pc-proxy.conf"
|
||||||
local proxy_domain="${PC_PROXY_DOMAIN:-cms-jack.imharry.work}"
|
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
|
if [[ -f "$ENV_FILE" ]]; then
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
@@ -271,6 +274,32 @@ _install_pc_nginx_proxy() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
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 nginx; then
|
||||||
if _has apt-get; then
|
if _has apt-get; then
|
||||||
apt-get update -y
|
apt-get update -y
|
||||||
|
|||||||
@@ -314,6 +314,7 @@ TENCENT_SDK_SECRET_KEY=xxx
|
|||||||
| `/api/im/` | `127.0.0.1:10002` |
|
| `/api/im/` | `127.0.0.1:10002` |
|
||||||
| `/api/user/`、`/api/chat/` | `127.0.0.1:10008` |
|
| `/api/user/`、`/api/chat/` | `127.0.0.1:10008` |
|
||||||
| `/msg_gateway` | `127.0.0.1:10001`(WebSocket) |
|
| `/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) |
|
| `/` | `127.0.0.1:5173`(PC Vite dev server) |
|
||||||
|
|
||||||
1. 服务器上已执行 `05-start.sh` 等,保证 `10001/10002/10008` 在监听。
|
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;` 即可)。
|
**域名访问**:本配置中 `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 基础设施
|
### Docker 基础设施
|
||||||
|
|
||||||
| 服务 | 端口 |
|
| 服务 | 端口 |
|
||||||
|
|||||||
@@ -110,6 +110,44 @@ server {
|
|||||||
return 200 "ok\n";
|
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.
|
# PC Vite dev server.
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://127.0.0.1:5173;
|
proxy_pass http://127.0.0.1:5173;
|
||||||
|
|||||||
Reference in New Issue
Block a user