docker 部署 siyuan 笔记 +nginx 反代出现 service-worker.js 返回 500 错误

本贴最后更新于 458 天前,其中的信息可能已经时移世异

我在使用 docker 部署思源笔记 + docker nginx https 反向代理 遇到问题

之前一直使用正常,最后一个正常版本 b3log/siyuan:v2.7.10,
现在使用 2.8 以后的所有版本,,但是通过 nginx 的方向代理访问后 第一次 界面加载正常,刷新一下界面 就会报 HTTP500 100% 出现 刷新一次 界面正常,再刷新 就提示 HTTP 500,以此循环 通过 nginx 日志查到 nginx 请求到后端后 service-worker.js 返回 500 错误

不通过 nginx , 直接映射容器端口方式访问是正常的

我在谷歌、百度 搜了 好几天没有解决,,,一直还在用 v2.7.10,这是我最后正常的版本

我也试过加启动参数 --ssl=true 之类的,均无效,siyuan 容器的日志没有报错信息

这是我的 docker run

docker run -d --name=siyuan --restart=always --network docker-net1  -v /data/siyuan/workspace:/siyuan/workspace  b3log/siyuan --workspace=/siyuan/workspace

这是我的 nginx 配置

域名信息已脱敏

server {
listen 80;
listen 443 ssl;
http2 on;
server_name xxx.com;

if ($server_port !~ 443){
	rewrite ^(/.*)$ https://$host$1 permanent;
}

ssl_certificate /etc/nginx/cert/xxx.com.pem;
ssl_certificate_key /etc/nginx/cert/xxx.com.key;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

#LOG
access_log /var/log/nginx/xxx.com.access.log;
error_log /var/log/nginx/xxx.com.error.log;

location / {
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header Host $http_host;
 proxy_pass http://siyuantest:6806;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection 'Upgrade';
 client_max_body_size 500m;
}
}

部分 nginx 的访问日志 只有 service-worker.js 出现 500(已脱敏)

1.1.1.1 - - [18/Aug/2023:01:00:56 +0800] "POST /api/system/setUILayout HTTP/2.0" 200 31 "https://xxx.com/stage/build/desktop/?r=sh1zp26" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
1.1.1.1 - - [18/Aug/2023:01:00:56 +0800] "GET /ws?app=rfc5g&id=5e90f0cc-55dc-4a84-a1f7-4ca0d9671b3d&type=main HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
1.1.1.1 - - [18/Aug/2023:01:00:56 +0800] "GET /ws?app=rfc5g&id=a2618b64-bdaa-4a7b-b9d6-b2104378b3a5&type=protyle HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
1.1.1.1 - - [18/Aug/2023:01:00:56 +0800] "GET /ws?app=rfc5g&id=c2e52356-046a-49d5-b8d6-d9afe9d932ff&type=filetree HTTP/1.1" 101 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
1.1.1.1 - - [18/Aug/2023:01:00:57 +0800] "GET /stage/build/desktop/?r=sh1zp26 HTTP/2.0" 200 648 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
1.1.1.1 - - [18/Aug/2023:01:00:57 +0800] "GET /service-worker.js?v=2.8.9 HTTP/2.0" 200 916 "https://xxx.com/service-worker.js?v=2.8.9" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
1.1.1.1 - - [18/Aug/2023:01:00:57 +0800] "POST /api/system/getConf HTTP/2.0" 200 4931 "https://xxx.com/stage/build/desktop/?r=sh1zp26" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
1.1.1.1 - - [18/Aug/2023:01:00:57 +0800] "POST /api/notebook/lsNotebooks HTTP/2.0" 200 469 "https://xxx.com/stage/build/desktop/?r=sh1zp26" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"

1.1.1.1 - - [18/Aug/2023:01:00:57 +0800] "GET /service-worker.js?v=2.8.9 HTTP/2.0" 500 0 "https://xxx.com/stage/build/desktop/?r=sh1zp26" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"

1.1.1.1 - - [18/Aug/2023:01:00:57 +0800] "POST /api/storage/getLocalStorage HTTP/2.0" 200 446 "https://xxx.com/stage/build/desktop/?r=sh1zp26" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
1.1.1.1 - - [18/Aug/2023:01:00:57 +0800] "POST /api/sync/getBootSync HTTP/2.0" 200 31 "https://xxx.com/stage/build/desktop/?r=sh1zp26" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
1.1.1.1 - - [18/Aug/2023:01:00:57 +0800] "POST /api/setting/getCloudUser HTTP/2.0" 200 76 "https://xxx.com/stage/build/desktop/?r=sh1zp26" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
1.1.1.1 - - [18/Aug/2023:01:00:57 +0800] "POST /api/storage/removeLocalStorageVals HTTP/2.0" 200 31 "https://xxx.com/stage/build/desktop/?r=sh1zp26" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.3

可以看到 service-worker.js 请求 后端返回 500,但是再刷新下就会又正常了,再刷新一下 又 500 了,

照成的直接影响就是

刷新image.png

再刷新,就会返回 500 错误

image.png

我尝试使用 curl 请求 每次都是成功的,唯独浏览器就这样,,换过三个电脑 不同的网络 问题依旧, siyuan 笔记后端的日志上,,没任何异常

image.png

使用 v2.7.10 版本或者之前的版本 都正常

只要使用 v2.8 之后的所有版本 都会这样

谷歌、百度了好几天 没找到解决方案~

有没有大佬看出是哪里问题?

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22337 引用 • 89378 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8112 引用 • 37001 回帖 • 160 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 我尝试使用 curl 请求 每次都是成功的,唯独浏览器就这样,,换过三个电脑 不同的网络 问题依旧, siyuan 笔记后端的日志上,,没任何异常

    在浏览器对应错误请求的右键菜单复制一下对应的完整 curl 命令, 然后对比一下成功请求的 curl 命令, 再之后执行一下所复制的 curl 命令试试

    1 回复
  • xrzlddl

    curl 请求每次都是成功的,

    浏览器上 第一次请求也是正常的,再刷新就 500 了, 再刷新一下又正常!

    但是浏览器上 点清空缓存的方式加载 可以保证每次都是 200 成功的

    方便加微信么? xrzl1996 有偿解决这个问题!

  • xrzlddl

    这个是很久以前的了,现在已经不适用了吧~

    1 回复
  • xrzlddl

    已经解决

    反向代理配置文件修改

    1 回复
  • 现在仍在使用,很稳定

  • Paxton

    我也出现了一样的问题,可以问下是怎么解决的吗 🌹 感谢

    1 回复
  • xrzlddl

    nginx 反向代理配置上在头部添加, 重启 nginx 即可解决

    map $http_upgrade $conn_upgrade {
          default upgrade;
          '' close;
        }
    
    
请输入回帖内容 ...