一:环境介绍
1.操作系统:Centos 7.* ( 双核4G、硬盘至少20G)
2.应用软件:nginx-1.8.1、Docker
二:从官方获取Docker
由于collabora online官方提供的部署文档需要Docker容器
再由官方提供的Docker安装方式安装,执行下列命令即可
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
sudo systemctl start docker
下面提供一些Docker常用命令
查看docker镜像
docker images
删除所有的docker镜像
docker rmi $(docker images | grep none | awk '{print $3}' | sort -r)
查看运行的容器 (可查看到运行容器的ID)
docker ps -a
杀掉/停止/启动 容器
docker kill/stop/start ID
删除所有容器 (该容器状态必须为停止状态)
docker rm $(docker ps -a -q)
启动某个容器
docker rm ID
重启docker
systemctl restart docker
三:从Dokcer容器运行collabora online服务
执行
docker run -t -d -p 0.0.0.0:9980:9980 -e 'domain=owncloud\\.domain\\.com\|nextcloud\\.domain\\.com' -e "username=admin" -e "password=123456" --restart always --cap-add MKNOD collabora/code
注:domain为你的nextcloud服务器地址,此处为授权的意思,并注意域名部分中的“.”要加转义字符“\”,多个域名之间用“|”隔开
查看容器运行状态
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3451bd63b1aa collabora/code "/bin/sh -c 'bash ..." 2 weeks ago Up 2 weeks 0.0.0.0:9980->9980/tcp xenodochial_einstein
此时系统防火墙会发生变化
iptables -L -n
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER-ISOLATION all -- 0.0.0.0/0 0.0.0.0/0
DOCKER all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 172.17.0.2 tcp dpt:9980
Chain DOCKER-ISOLATION (1 references)
target prot opt source destination
RETURN all -- 0.0.0.0/0 0.0.0.0/0
保存防火墙
/usr/libexec/iptables/iptables.init save
四:通过Nginx反向代理将Collabora online代理,供Nextcloud访问
1.安装部署nginx请访问http://www.jianshu.com/p/d9f33d1189d8
2.因 collabora online 需要https安全连接,所以需要申请购买或者试用ssl证书(测试可以到https://www.pianyissl.com 申请试用ssl)
3.配置nginx反向代理collabora online
server {
listen 443 ssl;
server_name collabora.test.com;
ssl on;
ssl_certificate /usr/local/nginx/ssl/server.pem;
ssl_certificate_key /usr/local/nginx/ssl/server.key;
location ^~ /loleaflet {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
location ^~ /hosting/discovery {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
location ^~ /lool {
proxy_pass https://localhost:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
}
}
启动nginx
防火墙打开80和443端口
此处注意:一定要先开启docker collbora online 服务在打开或者重启nginx,这样服务才会正常,不然会报错
五:配置nextcloud连接collabora online 服务
1. chrome浏览器访问下列地址进入collabora online 服务端
https://collabora.test.com/loleaflet/dist/admin/admin.html
说明collabora online 服务正常运行
2.进入nextcloud应用界面添加collabora online 启用
3.应用管理界面的"在线协作",输入collabora online 地址
4.任意打开一个文档进行在线编辑
5.此时再打开collabora online 服务端,可看见正在编辑的文档信息
https://collabora.test.com/loleaflet/dist/admin/admin.html