onlyoffice 问题与优化
|
docker run -it -d -p 8080:80 -e JWT_ENABLED=false --restart=always --name onlyoffice onlyoffice/documentserver
docker cp default.json onlyoffice:/etc/onlyoffice/documentserver/default.json
docker cp view.html onlyoffice:/var/www/onlyoffice/documentserver-example/welcome/
“This request has been blocked; the content must be served over HTTPS.”
[!tip]
浏览器(尤其是 Chrome、Edge)默认会拦截 HTTPS 页面去加载 HTTP 内容,因为这会导致安全降级。
所以就算你的内网是安全的,只要是 HTTPS 页面加载 HTTP 资源,浏览器就会报错并阻止。
view.html 优化
alist 通过 iframe 嵌入 onlyoffice 的预览与编辑方式分享 · AlistGo/alist · Discussion #8271 · GitHub
https://github.com/AlistGo/alist/discussions/8271
onlyoffice报 error self signed certificate导致download failed错误处理_onlyoffice download failed-CSDN博客
https://blog.csdn.net/weixin_44048054/article/details/126057999
由于 onlyoffice 已经在运行了,无法修改端口映射,所以重启一个 nginx 容器,用来做 https 映射
server {
listen 9443 ssl;
server_name 192.168.2.254:9443;
ssl_certificate /etc/nginx/ssl/ruan.crt;
ssl_certificate_key /etc/nginx/ssl/ruan.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://172.17.0.1:8080; # OnlyOffice 的 HTTP 服务
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
# 关键:支持 WebSocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
}
}
docker run -d --name nginx-onlyoffice-proxy -p 9443:9443 -v /root/onlyoffice.conf:/etc/nginx/conf.d/default.conf:ro -v /opt/alist/data/cert:/etc/nginx/ssl:ro nginx:mainline
OnlyOffice 在 Nginx 代理下出现 URL 端口丢失的问题,其核心在于 Nginx 的$host变量在某些情况下不包含端口信息,导致 OnlyOffice 后端生成了错误的资源链接。通过将proxy_set_header Host $host:$server_port; 添加到 Nginx 配置中,可以强制将完整的Host:Port信息传递给 OnlyOffice 后端,从而解决此问题。
Nginx 代理 OnlyOffice 时 URL 端口丢失问题 - Higurashi-kagome - 博客园
https://www.cnblogs.com/Higurashi-kagome/p/19066027