onlyoffice 浏览 xlsx文件为空,pdf可以浏览


seafile的访问域名为:http://YYY.w1.luyouxia.net
onlyoffice域名:http://YYY.a1.luyouxia.net:232xx
单独浏览onlyoffice都是可以看到:
![image|690x255](upload://i7pSEd5l0gWF9oxjzGnDxD2LfHm.png)


但与seafile集成,就无法浏览文件查看onlyoffice错误如下:

root@fbxx200c:/etc/onlyoffice/documentserver# tail -f /var/log/onlyoffice/documentserver/nginx.error.log
2025/03/11 06:03:01 [error] 7765#7765: *11 open() "/var/www/onlyoffice/documentserver-example/welcome/web-apps" failed (2: No such file or directory), client: 172.22.0.2, server: , request: "GET /welcome/web-apps HTTP/1.1", host: "YYY.a1.luyouxia.net:232xx"
2025/03/11 06:05:23 [error] 7765#7765: *14 open() "/var/www/onlyoffice/documentserver-example/welcome/web-apps/apps/api/documents/api.js" failed (2: No such file or directory), client: 172.22.0.2, server: , request: "GET /welcome/web-apps/apps/api/documents/api.js HTTP/1.1", host: "YYY.a1.luyouxia.net:232xx"
2025/03/11 06:08:53 [error] 7765#7765: *15 connect() failed (111: Unknown error) while connecting to upstream, client: 172.22.0.2, server: , request: "GET /example/ HTTP/1.1", upstream: "http://127.0.0.1:3000/", host: "YYY.a1.luyouxia.net:232xx", referrer: "http://YYY.a1.luyouxia.net:232xx/welcome/"
2025/03/11 06:08:53 [error] 7765#7765: *15 connect() failed (111: Unknown error) while connecting to upstream, client: 172.22.0.2, server: , request: "GET /example/ HTTP/1.1", upstream: "http://127.0.0.1:3000/", host: "YYY.a1.luyouxia.net:232xx", referrer: "http://YYY.a1.luyouxia.net:232xx/welcome/"
2025/03/11 06:55:13 [error] 737#737: *1 open() "/var/www/onlyoffice/documentserver-example/welcome/web-apps/apps/api/documents/api.js" failed (2: No such file or directory), client: 172.22.0.4, server: , request: "GET /welcome/web-apps/apps/api/documents/api.js HTTP/1.1", host: "YYY.a1.luyouxia.net:232xx", referrer: "http://YYY.w1.luyouxia.net/"
2025/03/11 07:06:35 [error] 7778#7778: *2 open() "/var/www/onlyoffice/documentserver-example/welcome/web-apps/apps/api/documents/api.js" failed (2: No such file or directory), client: 172.22.0.4, server: , request: "GET /welcome/web-apps/apps/api/documents/api.js HTTP/1.1", host: "YYY.a1.luyouxia.net:232xx", referrer: "http://YYY.w1.luyouxia.net/"
2025/03/11 07:39:04 [error] 7793#7793: *2 open() "/var/www/onlyoffice/documentserver-example/welcome/web-apps/apps/api/documents/api.js" failed (2: No such file or directory), client: 172.22.0.2, server: , request: "GET /welcome/web-apps/apps/api/documents/api.js HTTP/1.1", host: "YYY.a1.luyouxia.net:232xx", referrer: "http://YYY.w1.luyouxia.net/"
2025/03/11 07:52:57 [error] 7772#7772: *2 open() "/var/www/onlyoffice/documentserver-example/welcome/web-apps/apps/api/documents/api.js" failed (2: No such file or directory), client: 172.22.0.4, server: , request: "GET /welcome/web-apps/apps/api/documents/api.js HTTP/1.1", host: "YYY.a1.luyouxia.net:232xx", referrer: "http://YYY.w1.luyouxia.net/"
2025/03/11 07:54:33 [error] 7772#7772: *3 open() "/var/www/onlyoffice/documentserver-example/welcome/web-apps/apps/api/documents/api.js" failed (2: No such file or directory), client: 172.22.0.4, server: , request: "GET /welcome/web-apps/apps/api/documents/api.js HTTP/1.1", host: "YYY.a1.luyouxia.net:232xx", referrer: "http://YYY.w1.luyouxia.net/"
2025/03/11 07:54:43 [error] 7772#7772: *3 open() "/var/www/onlyoffice/documentserver-example/welcome/web-apps/apps/api/documents/api.js" failed (2: No such file or directory), client: 172.22.0.4, server: , request: "GET /welcome/web-apps/apps/api/documents/api.js HTTP/1.1", host: "YYY.a1.luyouxia.net:232xx", referrer: "http://YYY.w1.luyouxia.net/"

日志提醒是这个上游的服务器无法访问。你可以进入 seafile 的容器验证下这个地址能否正常访问,如果异常应该是配置文件的设置不正确

docker exec -it seafile bash
curl -I http://127.0.0.1:3000

3000端口是做什么的? 我测试确实curl -I http://127.0.0.1:3000 是不通的
但是我实际验证,下面这句话与浏览有关呢?

2025/03/11 07:54:43 [error] 7772#7772: *3 open() "/var/www/onlyoffice/documentserver-example/welcome/web-apps/apps/api/documents/api.js" failed (2: No such file or directory), client: 172.22.0.4, server: , request: "GET /welcome/web-apps/apps/api/documents/api.js HTTP/1.1", host: "YYY.a1.luyouxia.net:232xx", referrer: "http://YYY.w1.luyouxia.net/"

要检查和 onlyoffice 相关的配置情况。你的 onlyoffice 是不是和 seafile 不是在同一个文件中配置的,而是单独启动的容器或者是不是在其它宿主机上启动的容器?

是的 seafile和onlyoffice 在同一个物理机器的不同的docker里 用 cabby 做反向代理
seafile域名和onlyoffice用不同的域名
我把onlyoffice配成本地ip 不用域名的话 只能在服务器局域网才能正常在线浏览office ,如果在外网就访问不了
具体如下

ONTAINER ID   IMAGE                                                         COMMAND                   CREATED        STATUS                  PORTS                                                                                                                           NAMES
fb049a95954b   seafileltd/seafile-mc:12.0-latest                             "/sbin/my_init -- /s…"   47 hours ago   Up 47 hours             80/tcp                                                                                                                          seafile
7c88d54b296e   seafileltd/sdoc-server:1.0-latest                             "/sbin/my_init -- /s…"   47 hours ago   Up 47 hours             80/tcp                                                                                                                          seadoc
fb4ebad2200c   docker.seafile.top/seafileltd/onlyoffice-documentserver:8.1   "/app/ds/run-documen…"   47 hours ago   Up 47 hours             80/tcp, 443/tcp                                                                                                                 seafile-onlyoffice
e5c3dd38d7e2   lucaslorentz/caddy-docker-proxy:2.9-alpine                    "/bin/caddy docker-p…"   47 hours ago   Up 47 hours (healthy)   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:6233->6233/tcp, :::6233->6233/tcp, 2019/tcp   seafile-caddy
ae0643c255cb   memcached:1.6.29                                              "memcached -m 256"        47 hours ago   Up 47 hours             11211/tcp                                                                                                                       seafile-memcached
7780e8f873fd   mariadb:10.11                                                 "docker-entrypoint.s…"   47 hours ago   Up 47 hours (healthy)   3306/tcp                                                                                                                        seafile-mysql
bb0d42b4b7aa   ghcr.io/immich-app/immich-server:release                      "tini -- /bin/bash s…"   3 months ago   Up 3 days (healthy)     0.0.0.0:2283->2283/tcp, :::2283->2283/tcp                                                                                       immich_server
adc1daa4bd02   tensorchord/pgvecto-rs:pg14-v0.2.0                            "docker-entrypoint.s…"   3 months ago   Up 3 days (healthy)     5432/tcp  

:rofl:要看seafile 和 onlyoffice 的 yml 配置文件内容,保证 seafile 和 onlyoffice 在同一个容器网络中,后面 seahub_setting.py 的配置中可以直接使用容器名称。如果是单独的 IP 可以访问,也可以配置为单独的 IP 方式。你可以参考: docker-seafile-12.06 - 虚拟的现实 - 虚拟的现实 或者 docker-seafile-12.06 - 虚拟的现实 - 虚拟的现实

以下是seafile和onlyoffice的配置文件,可以帮忙看下怎么做到一个容器网络中?
onlyoffice的配置

 cat onlyoffice.yml
---
services:
  caddy:
    ports:
      - ${ONLYOFFICE_PORT:-6233}:${ONLYOFFICE_PORT:-6233}

  onlyoffice:
    image: ${ONLYOFFICE_IMAGE:-onlyoffice/documentserver:8.1.0.1}
    restart: unless-stopped
    container_name: seafile-onlyoffice
    environment:
      #- DB_TYPE=${DB_TYPE:-mariadb}
      #- DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db}
      #- DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile}
      #- DB_PWD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty}
      - JWT_ENABLED=true
      - JWT_SECRET=${ONLYOFFICE_JWT_SECRET:?Variable is not set or empty}
    volumes:
      - ${ONLYOFFICE_VOLUME:-/opt/onlyoffice}/logs:/var/log/onlyoffice
      - ${ONLYOFFICE_VOLUME:-/opt/onlyoffice}/data:/var/www/onlyoffice/Data
      - ${ONLYOFFICE_VOLUME:-/opt/onlyoffice}/lib:/var/lib/onlyoffice
      - ${ONLYOFFICE_VOLUME:-/opt/onlyoffice}/etc/local-production-linux.json:/etc/onlyoffice/documentserver/local-production-linux.json
      - ${ONLYOFFICE_VOLUME:-/opt/onlyoffice}/etc/default.json:/etc/onlyoffice/documentserver/default.json
    labels:
      caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${ONLYOFFICE_SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}:${ONLYOFFICE_PORT:-6233}
      caddy.reverse_proxy: "{{upstreams}}"
    networks:
      - seafile-net

networks:
  seafile-net:
    name: seafile-net

seafile的配置

 cat seafile-server.yml
services:
  db:
    image: ${SEAFILE_DB_IMAGE:-mariadb:10.11}
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${INIT_SEAFILE_MYSQL_ROOT_PASSWORD:-}
      - MYSQL_LOG_CONSOLE=true
      - MARIADB_AUTO_UPGRADE=1
    volumes:
      - "${SEAFILE_MYSQL_VOLUME:-/home/seafile/seafile-mysql/db}:/var/lib/mysql"
    networks:
      - seafile-net
    healthcheck:
      test:
        [
          "CMD",
          "/usr/local/bin/healthcheck.sh",
          "--connect",
          "--mariadbupgrade",
          "--innodb_initialized",
        ]
      interval: 20s
      start_period: 30s
      timeout: 5s
      retries: 10

  memcached:
    image: ${SEAFILE_MEMCACHED_IMAGE:-memcached:1.6.29}
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net

  seafile:
    image: ${SEAFILE_IMAGE:-seafileltd/seafile-mc:12.0-latest}
    container_name: seafile
      #ports:
      #  - "80:80"
    volumes:
      - ${SEAFILE_VOLUME:-/home/seafile/seafile-data}:/shared
      - type: bind
        source: /home/users/yangkai/share/seafile-fuse
        target: /seafile-fuse
        bind:
          propagation: rshared
    privileged: true
    cap_add:
      - SYS_ADMIN

    environment:
      - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db}
      - DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306}
      - DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile}
      - DB_ROOT_PASSWD=${INIT_SEAFILE_MYSQL_ROOT_PASSWORD:-}
      - DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty}
      - SEAFILE_MYSQL_DB_CCNET_DB_NAME=${SEAFILE_MYSQL_DB_CCNET_DB_NAME:-ccnet_db}
      - SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=${SEAFILE_MYSQL_DB_SEAFILE_DB_NAME:-seafile_db}
      - SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=${SEAFILE_MYSQL_DB_SEAHUB_DB_NAME:-seahub_db}
      - TIME_ZONE=${TIME_ZONE:-Etc/UTC}
      - INIT_SEAFILE_ADMIN_EMAIL=${INIT_SEAFILE_ADMIN_EMAIL:-me@example.com}
      - INIT_SEAFILE_ADMIN_PASSWORD=${INIT_SEAFILE_ADMIN_PASSWORD:-asecret}
      - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}
      - SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL:-http}
      - SITE_ROOT=${SITE_ROOT:-/}
      - NON_ROOT=${NON_ROOT:-false}
      - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty}
      - SEAFILE_LOG_TO_STDOUT=${SEAFILE_LOG_TO_STDOUT:-false}
      - ENABLE_SEADOC=${ENABLE_SEADOC:-true}
      - SEADOC_SERVER_URL=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}/sdoc-server
    labels:
      caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}
      caddy.reverse_proxy: "{{upstreams 80}}"
    depends_on:
      db:
        condition: service_healthy
      memcached:
        condition: service_started
    networks:
      - seafile-net

networks:
  seafile-net:
    name: seafile-net

这个配置是在同一个网络中了。有几个疑问:
1、这个 Seafile 的配置好像是 fuse 挂载盘的方式,不是正常的配置访问模式
2、加端口可以访问 onlyoffice 但从配置文件看并没开放 232XX 端口
3、另外 seahub_setting.py 的设置有关于 onlyoffice 的整合配置,类似于 ONLYOFFICE_APIJS_URL = 'http://192.168.182.52:6234/web-apps/apps/api/documents/api.js'

1、这个 Seafile 的配置好像是 fuse 挂载盘的方式,不是正常的配置访问模式

这个是为了方便在服务器上只读访问seafile文件,我尝试关闭Fuse ,onlyoffice 访问还是无效;

2、加端口可以访问 onlyoffice 但从配置文件看并没开放 232XX 端口
这个23244 是 通过域名绑定的
image
3、另外 seahub_setting.py 的设置有关于 onlyoffice 的整合配置,类似于 ONLYOFFICE_APIJS_URL = 'http://192.168.182.52:6234/web-apps/apps/api/documents/api.js'
seahub_setting配置如下:


单独访问这个地址是可以的

这里的设置为 ONLYOFFICE_JEW_SECRET 的内容一样再试试。如果不行估计要远程看日志调试才好判断

发现问题了,是我这里路径配置错了


删除welcome 就好了

感谢哈