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;
}
}