nextcloud打开经反向代理后的onlyoffice编辑报错无法下载

nextcloud打开经反向代理后的onlyoffice编辑报错无法下载

使用nginx加前缀反向代理onlyoffice

docker的onlyoffice部署命令

sudo docker run -i -t -d -p 8880:80 --restart=always \
    -v /app/onlyoffice/DocumentServer/logs:/onlyoffice/log  \
    -v /app/onlyoffice/DocumentServer/data:/onlyoffice/Data  \
    -v /app/onlyoffice/DocumentServer/lib:/onlyoffice/lib \
    -v /app/onlyoffice/DocumentServer/db:/onlyoffice/postgresql -e JWT_SECRET= fgerlkj-dfs-dsgsgb-dfsd onlyoffice/documentserver

可以连接成功

在这里插入图片描述

部署时报错如下:

# 如果缺少这个配置就会报错,网上找了很久的资料都没有人说
location /cache/ {
        		rewrite ^/cache/(.*)$ /onlyoffice/cache/$1 last;
    		}

这个报错的主要原因是这个下载的url没有带上onlyoffice前缀,导致404,上面的配置文件是匹配到这个url然后加上前缀
在这里插入图片描述

nextcloud和onlyoffice的完整nginx配置

server {
  		listen       443 ssl;
  		server_name  nextcloud.example.com;
 
		ssl_certificate      /usr/local/nginx/conf/ssl/icloud/nextcloud.example.com.pem;
  		ssl_certificate_key  /usr/local/nginx/conf/ssl/icloud/nextcloud.example.com.key;
 
  		ssl_session_cache    shared:SSL:1m;
  		ssl_session_timeout  5m;
  		ssl_protocols        TLSv1 TLSv1.1 TLSv1.2; 
  		ssl_ciphers          ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  		ssl_prefer_server_ciphers  on;
  		
  
  		add_header X-Content-Type-Options nosniff;
  		add_header X-XSS-Protection "1; mode=block";
  		add_header X-Robots-Tag none;
  		add_header X-Download-Options noopen;
  		add_header X-Permitted-Cross-Domain-Policies none;
  		add_header Strict-Transport-Security "max-age=15768000";
 
   
  		location = /.well-known/carddav {
    		  	return 301 $scheme://$host/remote.php/dav;
  		}
 		location = /.well-known/caldav {
      		return 301 $scheme://$host/remote.php/dav;
  		}
  
  		client_max_body_size 512M;
  		fastcgi_buffers 64 4K;
 
  		gzip on;
  		gzip_vary on;
  		gzip_comp_level 3;
  		gzip_min_length 1024;
  		gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
  		gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json 					application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; 
 
  		location / {
      		proxy_buffering off;
      		proxy_set_header Host $http_host;
      		proxy_set_header Upgrade $http_upgrade;
      		proxy_set_header X-Real-IP $remote_addr;
      		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      		proxy_pass http://xx.xx.xx.xx:80/;
  		}
		location /onlyoffice/ {
			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-Proto $scheme;
			proxy_pass http://xx.xx.xx.xx:8880/;
			
		}
		# 处理报错
		location /cache/ {
        		rewrite ^/cache/(.*)$ /onlyoffice/cache/$1 last;
    		}

	}
### 集成 NextcloudONLYOFFICE 的安装与配置 在 Synology NAS 中实现 NextcloudONLYOFFICE 的集成可以通过 Docker 来简化部署过程。以下是具体的安装和配置方法: #### 1. 准备环境 确保 Synology NAS 已经完成基本设置并启用了 Docker 功能[^1]。如果尚未启用,请前往 **控制面板 > 应用程序门户 > Docker** 并启动该功能。 --- #### 2. 使用 Docker 安装 Nextcloud - 打开 Synology DSM 的 Docker 应用程序。 - 前往 **注册表** 页面,搜索 `nextcloud` 镜像,并拉取官方版本。 - 创建一个新的容器,挂载数据卷以便保存文件和数据库信息。例如: ```bash /volume1/docker/nextcloud:/var/www/html ``` - 启动容器后,访问 Web 界面完成初始配置(如管理员账户、数据存储路径等)。 --- #### 3. 使用 Docker 安装 ONLYOFFICE 文档服务器 同样通过 Synology DSM 的 Docker 应用程序来安装 ONLYOFFICE 社区版或企业版镜像。对于社区版,可以执行以下操作: - 搜索 `onlyoffice/documentserver` 镜像并拉取最新版本。 - 创建新容器时,建议挂载日志目录以方便后续排查问题: ```bash /volume1/docker/onlyoffice/logs:/var/log/onlyoffice ``` - 将容器端口映射到主机上的可用端口(默认为 HTTP:80 和 HTTPS:443)。例如: ```plaintext 容器内部端口 -> 主机外部端口 80 -> 8080 443 -> 8443 ``` --- #### 4. 配置 NextcloudONLYOFFICE 集成 登录到已安装的 Nextcloud 实例,进入管理后台进行如下设置: - 导航至 **应用** 菜单,激活 “Text” 或者专门用于文档编辑的应用插件。 - 进入 **设置 > 管理员设置 > 只读应用程序接口 (API)** ,输入 ONLYOFFICE 文档服务器地址。例如: ```plaintext http://<your-synology-ip>:8080 ``` - 如果使用 HTTPS,则替换为对应的 SSL 地址[^2]。 测试连接成功后,用户即可直接在浏览器中打开 Nextcloud 文件并通过 ONLYOFFICE 编辑 Office 类型文档。 --- #### 5. 注意事项 - 确保防火墙允许必要的端口通信。 - 对于生产环境,强烈建议配置反向代理(如 Nginx),并将流量加密传输以提高安全性。 - 若遇到兼容性问题,可尝试更新两者的 Docker 镜像至最新稳定版本。 ```python import requests def test_onlyoffice_connection(server_url): try: response = requests.get(f"{server_url}/healthz/ping", timeout=5) return True if response.status_code == 200 else False except Exception as e: return str(e) print(test_onlyoffice_connection("http://localhost:8080")) ``` 上述脚本可用于验证 ONLYOFFICE 是否正常运行。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CQOS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值