From 89787d21e567b3122f1bf3c7880592bb0e59bc3d Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Fri, 18 Sep 2026 22:59:20 +0800 Subject: [PATCH] Use fixed same-origin API proxy --- .gitea/workflows/deploy.yml | 3 +-- Dockerfile | 2 +- README.md | 2 +- nginx.conf | 5 ----- web/runtime-env.js | 3 +-- 5 files changed, 4 insertions(+), 11 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 49bd6e0..997f0c6 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -16,7 +16,6 @@ jobs: SOURCE_REPOSITORY: ${{ gitea.repository }} SOURCE_REVISION: ${{ gitea.sha }} DEPLOY_PORT: ${{ vars.DEPLOY_PORT || '3000' }} - API_BASE_URL: ${{ vars.API_BASE_URL }} steps: - name: Fetch exact revision env: { SOURCE_TOKEN: "${{ secrets.GITEA_TOKEN || gitea.token }}" } @@ -43,7 +42,7 @@ jobs: set -eu docker network inspect pk-lab-public >/dev/null 2>&1 || docker network create pk-lab-public docker rm -f pk-lab-xhs-preview 2>/dev/null || true - docker run -d --name pk-lab-xhs-preview --restart unless-stopped --network pk-lab-public --read-only --tmpfs /tmp --tmpfs /var/cache/nginx --tmpfs /var/run -e API_BASE_URL="$API_BASE_URL" -p "$DEPLOY_PORT:8080" "pk-lab-xhs:$SOURCE_REVISION" + docker run -d --name pk-lab-xhs-preview --restart unless-stopped --network pk-lab-public --read-only --tmpfs /var/cache/nginx --tmpfs /var/run -p "$DEPLOY_PORT:8080" "pk-lab-xhs:$SOURCE_REVISION" for i in 1 2 3 4 5 6 7 8 9 10; do status="$(docker inspect --format '{{.State.Health.Status}}' pk-lab-xhs-preview)" [ "$status" = healthy ] && exit 0 diff --git a/Dockerfile b/Dockerfile index dcea66c..5572499 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,4 +3,4 @@ COPY web /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 8080 HEALTHCHECK --interval=10s --timeout=3s --start-period=5s --retries=5 CMD wget -q -O- http://127.0.0.1:8080/health || exit 1 -CMD ["/bin/sh", "-c", "envsubst '$API_BASE_URL' < /usr/share/nginx/html/runtime-env.js > /tmp/runtime-env.js && exec nginx -g 'daemon off;'"] +CMD ["nginx", "-g", "daemon off;"] diff --git a/README.md b/README.md index 7d04585..0ce0f81 100644 --- a/README.md +++ b/README.md @@ -9,4 +9,4 @@ 3. 用小红书开发者工具打开仓库根目录,绑定综合版 App ID。 4. 后端配置同一 App ID/Secret 后重新部署。 -CI 默认把公网预览持续部署到宿主机 `3000` 端口,并加入 `pk-lab-public` Docker 网络。浏览器同源请求 `/api`,Nginx 转发给网络内的 `pk-lab-api:8000`,不需要写死服务器 IP,也不需要暴露后端端口。只有跨域或独立 API 域名部署时才需配置可选变量 `API_BASE_URL`。预览使用后端显式开启的 `TEST_AUTH_ENABLED` 测试身份,正式小程序使用 `xhs.login()`。 +CI 默认把公网预览持续部署到宿主机 `3000` 端口,并加入 `pk-lab-public` Docker 网络。浏览器固定同源请求 `/api`,Nginx 转发给网络内的 `pk-lab-api:8000`,不写死服务器 IP,也不暴露后端端口。预览使用后端显式开启的 `TEST_AUTH_ENABLED` 测试身份,正式小程序使用 `xhs.login()`。 diff --git a/nginx.conf b/nginx.conf index 2683f53..a1a56b3 100644 --- a/nginx.conf +++ b/nginx.conf @@ -3,11 +3,6 @@ server { server_name _; root /usr/share/nginx/html; - location = /runtime-env.js { - alias /tmp/runtime-env.js; - add_header Cache-Control "no-store"; - } - location /api/ { resolver 127.0.0.11 valid=10s ipv6=off; set $api_upstream http://pk-lab-api:8000; diff --git a/web/runtime-env.js b/web/runtime-env.js index 757f135..5932033 100644 --- a/web/runtime-env.js +++ b/web/runtime-env.js @@ -1,2 +1 @@ -window.PK_CONFIG = { apiBase: '${API_BASE_URL}' }; - +window.PK_CONFIG = { apiBase: '' };