本地用docker搭建onlyoffice,只能局域网访问,想在外网访问,遇到了一些困难,在这里记录一下
刚开始采用本地用docker搭建onlyoffice,电脑使用macmini,用nginx代理,期望使用ipv6实现外网访问,但是一直不成功,总结应该是docker搭建onlyoffice,docker或者是onlyoffice对ipv6支持不太友好,或者docker内部的nginx代理的问题,后续会持续关注,看问题在哪里
现在使用window搭建onlyoffice,nginx代理,能够实现外网访问,下面是具体搭建过程
操作系统及依赖软件:
操作系统: 64-bit Windows Server 2012 或者更高版本(window10也可以)
Erlang: 24.2 版本(window必须要装上,否则安装onlyoffice失败,一直卡住不动)
RabbitMQ:3.9.12 版本(docker安装)
docker run -id --name=rabbitmq -v /usr/local/rabbitmq:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=root -e RABBITMQ_DEFAULT_PASS=123456. rabbitmq:management
PostgreSQL: 12.9 版本或者更高(docker安装)
docker run -id --name=postgresql -v /usr/local/postgresql:/var/lib/postgresql/data --restart=always -p 5432:5432 -e POSTGRES_PASSWORD=Cao123456. -e LANG=C.UTF-8 postgres
创建onlyoffice库表
Erlang安装
安装ONLYOFFICE
ONLYOFFICE Docs程序默认是使用的 80端口,如果80端口被占用,需要采用命令的方式指定端口来安装。
还是桌面快捷键“Win+R”,输入“cmd”,确定,打开终端。
找到ONLYOFFICE Docs程序,鼠标右键“属性”,复制它的位置路径。
在终端输入“cd+上步复制的ONLYOFFICE Docs程序路径”,回车。
接着输入命令“onlyoffice-documentserver.exe /DS_PORT=XXXX”并回车。“XXXX”就是我们指定的端口,请注意这个端口号只要没有被占用,任何端口都可以。
然后点击“Next”开始安装。
安装ONLYOFFICE Docs程序所有过程都是默认,一直“Next”直至安装完成!
访问 IP:端口/welcome验证是否安装成功。
1.2.6、关闭JWT
7.2版本开始默认是开启JWT的,需要关闭JWT
修改local.json
C:Program FilesONLYOFFICEDocumentServerconfiglocal.json
"token": {
"enable": {
"browser": false,
"request": {
"inbox": false,
"outbox": false
}
}
}
重启onlyoffice服务
现在安装必要的完毕了
然后就是nginx
下面是配置文件
upstream docservice {
server 127.0.0.1;
}
map $http_host $this_host {
"" $host;
default $http_host;
}
map $http_x_forwarded_proto $the_scheme {
default $http_x_forwarded_proto;
"" $scheme;
}
map $http_x_forwarded_host $the_host {
default $http_x_forwarded_host;
"" $this_host;
}
map $http_upgrade $proxy_connection {
default upgrade;
"" close;
}
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Forwarded-Host $the_host;
proxy_set_header X-Forwarded-Proto $the_scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
server {
listen 0.0.0.0:9999;
listen [::]:9999 default_server;
server_tokens off;
location / {
proxy_pass http://docservice;
proxy_http_version 1.1;
}
}
现在就可以实现外网访问了。