Skip to content

Onlyoffice 常见问题

在onlyoffice预览服务无法正常运行时,我们需要通过相关的日志文件进行错误的排查

bash
# 进入日志目录
cd /var/log/onlyoffice/documentserver
# 监听后续产生的日志
tail -f **/*.log

前端显示【您的许可证已过期。请更新您的许可证并刷新页面。】

获取license文件的md5,查看是否为8d289ecbf3c3afcc280fb7971ac120f2

bash
md5sum /var/www/onlyoffice/Data/license.lic

如果md5不对或者文件不存在,请解压织信安装包,获取license.lic文件。如织信安装包为informat_next_2.23.zip

bash
unzip -d informat_next_2.23 informat_next_2.23.zip;
cp -vf ./informat_next_2.23/onlyoffice/license.lic /var/www/onlyoffice/Data/

前端显示【打开预览文件失败】,F12打开控制台显示

log
webSocket connection to 'ws://xxxxx/7.1.1-23/doc/xxxx/websocket' failed: Error during WebSocket handshake: Unexpected response code: 400

修改对应的NGINX配置可修复

bash
vi /etc/nginx/conf.d/ds.conf

# 在相应位置中添加配置
server {
  listen 0.0.0.0:9002;
  listen [::]:9002 default_server;
  server_tokens off;
  
  # 添加的配置
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_set_header Host $http_host;
  
  include /etc/nginx/includes/ds-*.conf;
}
# 保存文件
:wq!

# nginx重载配置
nginx -s reload

服务器CPU占用很高,日志报错【[AMQP] Error: Handshake terminated by server: 403】

日志报错内容如下:

log
[ERROR] nodeJS - [AMQP] Error: Handshake terminated by server: 403 (ACCESS-REFUSED) with message "ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile."

如果出现以上错误信息,请检查rabbitmq用户密码是否正确。onlyoffice在rabbitmq账号密码错误时,会不断的去尝试连接rabbitmq,导致CPU资源异常的情况。

bash
# 查看rabbitmq用户名和密码是否正确,并修改
vi /etc/onlyoffice/documentserver/local.json

# 具体rabbitmq配置,URL参数说明:amqp://账号:密码@主机名
"rabbitmq": {
    "url": "amqp://guest:guest@127.0.0.1"
}
# 保存
:wq

# 重启服务
systemctl restart supervisord

日志显示【invalid header token】

请求的链接的响应头不对

bash
# 查看日志内访问的链接地址,一般是预览文件下载地址,如http://xxx/web0/file/field/xxxxx

# 访问对应链接,获取响应头信息
curl -I {日志中访问错误的链接}

查看响应头是否合法,如果不合法,请修改NGINX上对应的头信息

前端显示【下载失败】

原因是下载文件超时,默认onlyoffice下载文件的超时时间是2分钟

解决方案:

  • 1.提高网速
  • 2.修改onlyoffcie配置文件,将services.CoAuthoring.server.limits_image_download_timeout.wholeCycle参数的值修改为5m,重启onlyoffice

文档安全令牌的格式不正确

Linux/Windows

  1. 使用任何可用的文本编辑器打开该local.json文件。
    • 对于 Linux -/etc/onlyoffice/documentserver/local.json
    • 对于 Windows -%ProgramFiles%\ONLYOFFICE\DocumentServer\config\local.json
  2. false通过将值更改为true以下三个部分 来启用令牌验证:
    • services.CoAuthoring.token.enable.browser
    • services.CoAuthoring.token.enable.request.inbox
    • services.CoAuthoring.token.enable.request.outbox
  3. 通过将三部分中的密钥值替换为您自己的文本字符串来指定您自己的密钥。密钥必须相同。
    • services.CoAuthoring.secret.inbox.string
    • services.CoAuthoring.secret.outbox.string
    • services.CoAuthoring.secret.session.string
json
{
  "services": {
    "CoAuthoring": {
      "token": {
        "enable": {
          "request": {
            "inbox": true,
            "outbox": true
          },
          "browser": true
        }
      },
      "secret": {
        "inbox": {
          "string": "yoursecret"
        },
        "outbox": {
          "string": "yoursecret"
        },
        "session": {
          "string": "yoursecret"
        }
      }
    }
  }
}
  1. 保存更改。
  2. 重新启动服务以使配置更改生效。
shell
systemctl restart ds-converter ds-docservice ds-example ds-metrics

Docker

如果您更改自动生成的密钥或者在/etc/onlyoffice/documentserver/local.json中手动禁用JWT ,服务器重启时JWT将再次启用,并且密钥将重新生成。 为了避免此问题,请在docker run命令中使用环境变量。 要禁用JWT,请使用-e JWT_ENABLED=false。

参考文档

OnlyOffice升级https

  1. 在OnlyOffice的nginx配置下增加https证书配置,默认路径为:/etc/nginx/conf.d/ds.conf

示例:

include /etc/nginx/includes/http-common.conf;
server {
  listen 0.0.0.0:9002 ssl;
  listen [::]:9002 ssl;
  server_tokens off;

  # SSL配置
  ssl_certificate /etc/nginx/***.crt;
  ssl_certificate_key /etc/nginx/***.key;

  # 添加其他SSL相关配置,例如支持TLS版本和密码套件的配置

  include /etc/nginx/includes/ds-*.conf;
}
  1. 测试并刷新nginx配置。
shell
nginx -t
nginx -s reload
  1. 修改织信后台参数配置【系统信息-参数设置-文件预览服务-office文件预览地址】,更新为最新的域名