From 30e5b2b885d348b75ec41550cf32a856b632c193 Mon Sep 17 00:00:00 2001 From: V <104217168+V-Official-233@users.noreply.github.com> Date: Sun, 26 Nov 2023 10:12:07 +0800 Subject: [PATCH] docs: update documentation for resolve CORS and CSP errors (#17) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新解决 CORS 和 CSP 异常的文档。 ```release-note None ``` --- README.md | 62 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 500dc56..6f32901 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # plugin-umami -Halo 2.0 对 [Umami](https://github.com/umami-software/umami) 的集成。(WIP) +Halo 2.0 对 [Umami](https://github.com/umami-software/umami) 的集成。 ![Umami](./screenshots//umami.png) @@ -17,30 +17,44 @@ Halo 2.0 对 [Umami](https://github.com/umami-software/umami) 的集成。(WIP) 1. 在 [Releases](https://github.com/halo-sigs/plugin-umami/releases) 下载最新的 JAR 文件。 2. 在 Halo 后台的插件管理上传 JAR 文件进行安装。 -3. 启动该插件之后,需要在设置配置 Umami 的相关信息。 +3. 启动该插件之后,需要在设置配置 Umami 的相关信息 +4. 进入插件设置页面,配置以下信息: + - Umami 的站点地址:Umami 服务的外部访问地址 + - 脚本名称:根据实际情况添加,Umami 1.x 默认为 umami.js,Umami 2.x 默认为 script.js + - 站点 ID:可在 Umami 的设置 -> 网站 -> 编辑中找到 + - 共享链接:共享链接需要您手动为对应的网站开启,设置之后可以在 Halo 后台的 Umami 菜单进行访问。 ## FAQ -1. Umami 使用 Nginx 反代时,可能导致 CORS 和 CSP 错误,需要在 Umami 反代的配置文件中加入如下配置(请替换域名)。 -``` -server{ - listen 443 ssl http2; - server_name [umami.domain.com]; - #... - add_header Access-Control-Allow-Origin 'https://halo.domain.com'; - add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; - add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; - if ($request_method = 'OPTIONS') { - return 204; - } - - add_header Content-Security-Policy 'frame-ancestors halo.domain.com'; - location / { - #... - proxy_hide_header 'Access-Control-Allow-Origin'; - proxy_hide_header 'Content-Security-Policy'; - } - -} -``` +1. 在 Console 无法加载 Umami 的页面,出现了 CORS 和 CSP 的错误。 + + 1. 方式 1:在 Umami 反代的配置文件中加入如下配置(请替换域名): + + ``` + server{ + listen 443 ssl http2; + server_name [umami.domain.com]; + #... + add_header Access-Control-Allow-Origin 'https://halo.domain.com'; + add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; + add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; + if ($request_method = 'OPTIONS') { + return 204; + } + + add_header Content-Security-Policy 'frame-ancestors halo.domain.com'; + location / { + #... + proxy_hide_header 'Access-Control-Allow-Origin'; + proxy_hide_header 'Content-Security-Policy'; + } + + } + ``` + 3. 方式 2:为 Umami 的容器添加环境变量 `ALLOWED_FRAME_URLS`,值为 Halo 的访问地址,例: + + ``` + ALLOWED_FRAME_URLS=https://www.halo.run + ``` + > 此方式适用于 Umami 2.3.0 以上版本。