基于nc连接的oo 出现了问题:文档服务内部发生异常: Error while downloading the document file to be converted

如上图,在通过 nc 连接 oo 时候,出现了文档服务内部发生异常: Error while downloading the document file to be converted
的错误提示。

nc日志:

oo converter 日志

docservice 日志

nc 版本:29.0.4
oo插件版本:9.3
oo版本:8.1

您好 @ebfming:wave:

看来您之前已经有过类似的咨询:
https://forum.onlyoffice.com/t/onlyoffice-error-while-downloading-the-document-file-to-be-converted/9239

文档服务器(ONLYOFFICE Docs) 的地址必须可以从Nextcloud访问,同时Nextcloud的地址也必须可以从文档服务器访问。

请您给我们提供一下的信息:

  1. 您根据哪个指南安装了文档服务器?

  2. 请尝试提供以下值 ( Linux - /etc/onlyoffice/documentserver/local.json)

     "inbox": {
       "header": "AuthorizationJwt"
     },
     "outbox": {
       "header": "AuthorizationJwt"
     }
    

修改之后执行以下命令:systemctl restart ds-*。
在Onlyoffice连接器 (Connector) 设置中也记得提供一样的header值。
确保 Nextcloud 的机器和 Docs 的机器上的时间设置相同.

  1. 请把default.json (etc/onlyoffice/documentserver/default.json) 文件打开并编辑此参数: “request-filtering-agent”, 设置 “allowPrivateIPAddress” 为 “true”.
    然后重启ONLYOFFICE所有的服务通过运行systemctl restart ds-*命令。

  2. 请提供您Nextcloud中的全JWT设置 (截图发给我们)

  3. 请附上最新的local.jsondefault.json文件。

  4. 如果做这些以后问题还在,请提供Document Server全日志文件:var/log/onlyoffice/documentserver

之前并没有解决问题,后来我重装系统了
现在我已经知道了问题所在,我把整理好的分享出来,希望对大家有帮助

5、基于nc平台连接oo报错故障排查

5.1、首先打开日志,逐步排查问题所在

nc日志

/data/nextcloud.log

oo日志

/var/log/onlyoffice/documentserver/converter ( 重点 )

/var/log/onlyoffice/documentserver/docservice

/var/log/onlyoffice/documentserver/metrics

/var/log/onlyoffice/documentserver/nginx.error.log

5.2、检查 nc和oo服务器之间是否可以 ping 通

  • 通过 ping 命令在两台服务器互相访问
  • 针对虚拟机,一定要记得通过 host 指向域名和ip
  • http和https不可混合使用
  • 跨域问题,目前没做过测试

5.3、jwt 授权

  • 是否开启jwt授权
  • 是否开启二次认证
  • jwt是否填写正确

5.4、rabbitMQ 检查

5.4.1、常用命令

5.4.1.1、将rabbitMQ长期驻留在启动服务

sudo systemctl enable --now rabbitmq-server

5.4.1.2、rabbitMQ启动服务

sudo systemctl start rabbitmq-server

5.4.2、基础故障排查

通过 rabbitMQ 的状态,检查是否出现异常

sudo rabbitmqctl status

oo和rabbitMQ 是默认连接地址是:localhost,有时候hostname发生变化会导致无法连接。

这个问题参考 5.4.3

5.4.3、linux 主机名不是 localhost

这种问题,通常日志报错:onlyoffice Error: connect ECONNREFUSED 127.0.0.1:5672

由于 主机名和rabbitmq默认hostname不相符,导致无法通信。

以下为chatGPT给出的解决方案:

Changing the hostname of a RabbitMQ server involves a few steps to ensure the RabbitMQ node can recognize and use the new hostname properly. Here’s a step-by-step guide:

5.4.3.1. Stop the RabbitMQ Service

First, stop the RabbitMQ service to prevent it from trying to use the old hostname while you are making changes.

sudo systemctl stop rabbitmq-server

5.4.3.2. Change the Hostname

Change the hostname of your server. You can do this temporarily or permanently.

  • Temporarily (until next reboot):
sudo hostname new-hostname
  • Permanently (survives reboots):

Edit the /etc/hostname file and replace the old hostname with the new one.

sudo nano /etc/hostname

Change the contents to:

new-hostname

Then, update the /etc/hosts file to ensure your system can resolve the new hostname to the correct IP address.

sudo nano /etc/hosts

Update the line with the old hostname to the new hostname:

127.0.0.1   localhost
127.0.1.1   new-hostname

5.4.3.3. Update RabbitMQ Configuration

If RabbitMQ is configured to use the old hostname, update the configuration to use the new hostname.

Edit the RabbitMQ environment file:

sudo nano /etc/rabbitmq/rabbitmq-env.conf

Update the NODENAME variable to the new hostname if it’s set there:

NODENAME=rabbit@new-hostname

5.4.3.4. Reset the RabbitMQ Node

Reset the RabbitMQ node to ensure it recognizes the new hostname.

sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl start_app

5.4.4.5. Start the RabbitMQ Service

Start the RabbitMQ service again.

sudo systemctl start rabbitmq-server

5.4.4.6. Verify the Change

Check the RabbitMQ logs to ensure it started correctly with the new hostname.

sudo tail -f /var/log/rabbitmq/rabbit@new-hostname.log

Notes

  1. Cluster Considerations: If the RabbitMQ node is part of a cluster, you’ll need to reconfigure the cluster to recognize the node under its new hostname. This might involve removing and re-adding the node to the cluster with the new hostname.
  2. DNS Resolution: Ensure that the new hostname can be resolved by DNS or by the /etc/hosts file on all machines that need to connect to the RabbitMQ server.

By following these steps, you should be able to change the hostname of your RabbitMQ server without issues.

5.5、关闭 oo 示例服务

有时候,oo示例服务开启,也会导致oc与oo之间无法通信,可以尝试关闭示例服务再次重试

sudo systemctl stop ds-example
sudo systemctl diabled ds-example

5.6、nc 服务器时间与oo服务器时间不同步

如果nc服务器时间与oo服务器时间不同步,也无法连接成功

您好,感谢您分享以上排查步骤。请确认一下,修改hostname以后问题已经解决好吗?

问题解决了,但不是修改 hosename 问题

如果是虚拟机,关机后再次开启。系统时间会被重置。由于我们在中国,系统时间和虚拟机默认时间不一样,这就会导致nc和oo通信出现问题。
如果从oo的converter 日志,可以看到 nc返回403代码

这个几乎只要关闭虚拟机再打开就会重现,好像没什么好办法

明白了,感谢您的分享

客气了
如果是 hosts没有绑定域名:oo日志系统返回404错误,连接 oo时候:系统返回404错误此提示;
如果是时间不对,oo日志返回403错误,连接 oo时候:系统返回:oo…无法下载模板…

1 Like