使用雷池作为反代打开sdoc报“加载文档内容错误”

服务器版本:13.0.25

docker部署,使用雷池替代caddy,seafile转发至宿主机8080访问,seadoc转发至宿主机8888访问,内网配置了DNS解析,内外网统一通过https://我的域名:端口访问,上传下载文件以及编辑markdown文件都正常,就是打开sdoc报“加载文档内容错误”。

雷池反向代理如图:

错误日志:sdoc无日志输出

浏览器控制台错误信息

viewFileSdoc.fd6c3f37.fd2d958f3e84.js:2 GET https://我的域名:端口/sdoc-server/api/v1/docs/de4be797-50f1-4298-b13e-3bad1381e42b/ 404 (Not Found).

……
viewFileSdoc.fd6c3f37.fd2d958f3e84.js:2 K {message: ‘Request failed with status code 404’, name: ‘AxiosError’, code: ‘ERR_BAD_REQUEST’, config: {…}, request: XMLHttpRequest, …}

请各位大佬帮忙看下,感谢!

您可以通过Seafile容器内部的nginx将Seadoc反向代理出来,我们并没有使用雷池代理的例子,无法为您排查雷池代理方面的配置。
具体操作如下:
修改seafile-server.yml,添加挂载点:

    volumes:
      - ${SEAFILE_VOLUME:-/opt/seafile-data}:/shared
      - /opt/seafile/seafile.nginx.conf:/etc/nginx/sites-enabled/seafile.nginx.conf 
      ##将nginx配置文件挂载到宿主机

复制容器内部/etc/nginx/sites-enabled/seafile.nginx.conf到宿主机/opt/seafile/seafile.nginx.conf

修改seafile.nginx.conf,添加:

	#seadoc
	location /sdoc-server/ {
		proxy_pass         http://seadoc/;
		proxy_redirect     off;
		proxy_set_header   Host              $host;
		proxy_set_header   X-Real-IP         $remote_addr;
		proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
		proxy_set_header   X-Forwarded-Host  $server_name;


		client_max_body_size 100m;
	}


	location /socket.io {
		proxy_pass http://seadoc;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection 'upgrade';
		proxy_redirect off;


		proxy_buffers 8 32k;
		proxy_buffer_size 64k;


		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header Host $http_host;
		proxy_set_header X-NginX-Proxy true;
	}

修改完之后外部反向代理只需正常代理根域名即可访问sdoc。

我的配置也是使用雷池作为前端,后端的 seafile 没有使用 caddy,你可以同步参考 https://wiki.anas365.com/spaces/VirtualReal/pages/118980642/docker-seafile-13.0.16(12+升级到13)