Jelastic - 在没有 ssl 的情况下使用 Next Cloud 进行在线协作(用于测试)

Jelastic - Collabora Online with Next Cloud without ssl (for testing)

出于测试目的,我想在 Jelastic 环境中在线安装 Collabora。

我正在尝试遵循以下基本步骤:https://www.collaboraoffice.com/code/quick-tryout-nextcloud-docker/

首先,我使用 link 中给出的 docker 图像配置拓扑。

next cloud在我进入给定的URL后安装成功。

然后我按照说明添加变量extra_params=--o:ssl.enable=false

然后我尝试通过添加端点来映射端口:

它将端口 9980 映射到 public 端口 11010。

最后,我在 nextCloud 上安装了 collabora 应用程序,并在专用的 Collabora 设置页面上配置了 Collabora 服务器 url:

jelastic-node-ndd.com:11010

我在尝试打开 Open office 文档时收到此消息:

Failed to load Collabora Online - please try again later

不知道怎么调查。当我尝试使用给定端口访问我兄弟上的 Collabora 服务器时,出现连接失败错误。

我们认为问题的主要原因是端口映射在您的情况下不起作用。 换句话说,telnet $(hostname) 11010 在容器内表示 "connection refused",因为映射只能从 Internet 正确工作。

这可以通过添加外部 IP 轻松解决。因此,在 "Collabora online" 的设置中,您必须指定 URL http://EXT.IP:9980 并删除映射。

另一种方法是映射技巧。在这种情况下,您可以只保留内部 IP 并像您一样进行映射。 然后,编辑映射并指定 Private Port 等于 Public Port

进一步,在容器内添加NAT规则,如:

iptables -t nat  -A DOCKER ! -i docker0 -p tcp -m tcp --dport 11010 -j DNAT --to-destination 172.21.0.2:9980

其中,11010 - 是您的映射端口。 172.21.0.2 - 您在执行 iptables -L DOCKER -vnt nat

时获得的 IP

因此,DOCKER 链应该如下所示:

root@node210795-nextcloud-test:~# iptables -L DOCKER -vnt nat        
Chain DOCKER (2 references)
 pkts bytes target     prot opt in     out     source               destination         
   19  1140 RETURN     all  --  docker0 *       0.0.0.0/0            0.0.0.0/0           
  106  6360 DNAT       tcp  --  !docker0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:9980 to:172.21.0.2:9980
   55  3300 DNAT       tcp  --  !docker0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:11031 to:172.21.0.2:9980

因此,您的 Collabora online URL 可以保留为 jelastic-node-ndd.com:11010

除此之外,您还可能遇到描述的问题here

我们可以使用文章 Setting up and configuring collabora/code Docker image 解决这个问题(直接使用配置文件)。在将 loolwsd.xml 返回到 docker 之前(第 3 步),您可能需要更改此文件:

chmod 666 loolwsd.xml

注意: 最好在 Quick tryout with Nextcloud docker

的第 5 步中指定附加参数 --restart always

变量 DOCKER_EXPOSE_PORT 应保持不变 (80)

extra_params=--o:ssl.enable=false是collabora/code的变量,所以在Variables

中不需要指定