nginx代理 访问 seafile 登录返回403

请按照以下模版详细描述您遇到的问题:

当前服务器和客户端版本

seafile-mc : 13.0
caddy-docker-proxy 2.12-alpine
sdoc-server: 2.0

操作过程(出现错误的操作步骤)

我才用docker-compise方式部署。使用了 caddy 。

部署在我司内网。通过宿主机IP能够正常访问 seafile .

但我希望可以在互联网访问,我司的网络情况是 互联网可以访问到 一台内部的统一NG的指定端口,即这台NG的 8080端口暴露在互联网了, 然后我在这在NG配置了 一个反向代理信息如下:
location /seafile/ {
proxy_pass http://seafile宿主机IP/;
}

我在互联网 访问 http://公网IP/seafile/ 是可以正常打开首页。但是输入账号密码点击登录后 返回 403 见下方截图。

错误截图

错误日志

浏览器访问的地址,即为 env 文件中配置的 SEAFILE_SERVER_HOSTNAME。
修改标准端口参考下面的方法(根据实际情况修改 https 或 http):
1.修改 caddy.yml

services:

  caddy:
    image: ${SEAFILE_CADDY_IMAGE:-lucaslorentz/caddy-docker-proxy:2.9-alpine}
    restart: unless-stopped
    container_name: seafile-caddy
    ports:
      - 80:80
      - 5200:5200(这里修改为你的端口)
    environment:
      - CADDY_INGRESS_NETWORKS=seafile-net
...

2.如果要使用自己的证书,不使用 caddy 自动申请的 Let’s Encrypt 证书,则需要修改seafile-server.yml,否则不用修改。

services:
...
    seafile:
    image: ${SEAFILE_IMAGE:-seafileltd/seafile-pro-mc:12.0-latest}
...
    labels:
      #caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}
      caddy.reverse_proxy: "{{upstreams 80}}"
      caddy: ${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} # leave this variables only
        #caddy: seafile.xxx.org:5200 # leave this variables only
      caddy.tls: "/data/caddy/certs/cert.pem /data/caddy/certs/key.pem"
        ...

3.修改 env 文件。

...
## Scheme
SEAFILE_SERVER_HOSTNAME=你的域名:你的非标准端口
SEAFILE_SERVER_PROTOCOL=https
...

4.如果使用了 onlyoffice,修改 onlyoffice.yml,解决双端口问题,否则不用修改。

---
services:
    ...
  onlyoffice:
    image: ${ONLYOFFICE_IMAGE:-onlyoffice/documentserver:8.1.0.1}
    restart: unless-stopped
...
    labels:
      #caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}:${ONLYOFFICE_PORT:-6233}
      caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://你的域名:${ONLYOFFICE_PORT:-6233}
      caddy.reverse_proxy: "{{upstreams}}"
...

你这是跨域问题,修改 seahub_settings.py 添加 就可以了

CSRF_TRUSTED_ORIGINS = [“https://seafile.yourdomain.com”]