必须通过反向代理将域名请求转发至本地onlyoffice服务,常用方法包括:nginx配置反向代理、docker host模式直连、cpolar内网穿透、修改default.json中siteurl字段并重启服务。

如果您已成功部署 OnlyOffice DocumentServer,但仅能通过服务器 IP 加端口(如 http://192.168.1.100:9002)访问,而希望使用更规范、易记的域名(如 onlyoffice.example.com)对外提供服务,则必须通过反向代理将域名请求转发至本地 OnlyOffice 服务。以下是实现该目标的多种配置方法:
一、使用 Nginx 配置反向代理绑定域名
此方法适用于已安装 Nginx 的 Linux 服务器,通过 server 块定义域名监听与 upstream 转发规则,使公网用户访问域名时透明地路由到 OnlyOffice 的本地监听端口(默认 9002 或容器映射端口)。
1、确认 OnlyOffice DocumentServer 正在运行且监听 127.0.0.1:9002(或 Docker 容器中暴露的对应端口,如 80 映射至宿主机 9000)。
2、编辑 Nginx 站点配置文件,例如 /etc/nginx/sites-available/onlyoffice,写入以下内容:
3、确保域名 onlyoffice.example.com 已正确解析至服务器公网 IP。
4、启用配置并重载 Nginx:
5、验证 Nginx 配置语法是否正确:sudo nginx -t;若提示 success,则执行 sudo systemctl reload nginx。
二、通过 Docker 运行时直接绑定域名(配合 host 模式或自定义网络)
此方法不依赖外部 Web 服务器,利用 Docker 的 --network host 或自定义 bridge 网络,结合容器内 Nginx 或内置反代逻辑(需镜像支持),使 OnlyOffice 直接响应指定域名请求。适用于轻量级部署或测试环境。
1、拉取支持域名配置的 OnlyOffice 镜像(如官方 onlyoffice/documentserver 或带 Nginx 层的定制镜像)。
2、启动容器时添加环境变量指定域名:
3、若使用 host 网络模式,需确保宿主机 80/443 端口未被占用,并将域名 A 记录指向宿主机 IP。
4、若使用 bridge 模式,须额外配置宿主机防火墙放行对应端口,并在 Nginx/Apache 中做二级反代,或改用 cpolar 等穿透工具映射域名。
三、借助 cpolar 实现域名绑定(免公网 IP + 自动 HTTPS)
当服务器无固定公网 IP 或无法配置 DNS 解析时,cpolar 可分配二级子域名(如 xxx.cpolar.top),并自动完成 TLS 加密与端口映射,实现简易域名访问。
1、在服务器安装 cpolar 并登录账户:curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash。
2、启动 cpolar 服务:sudo systemctl start cpolar。
3、创建隧道,将本地 OnlyOffice 端口(如 9000)映射至 cpolar 免费子域名:
4、访问 cpolar Web 管理界面(http://localhost:9200),在隧道列表中查看生成的 xxx.cpolar.top 地址。
5、登录 cpolar 账户后台,升级至付费版后可绑定自定义域名(如 onlyoffice.example.com),并上传 SSL 证书启用 HTTPS。
四、修改 OnlyOffice 内部配置文件强制指定访问地址
OnlyOffice DocumentServer 启动后会读取 /etc/onlyoffice/documentserver/default.json 中的 services.CoAuthoring.server.siteUrl 字段,该字段影响 WebSocket 连接地址、回调路径及前端资源加载路径,必须与最终对外域名一致,否则出现白屏或连接失败。
1、停止 OnlyOffice 服务:sudo supervisorctl stop all(或 sudo docker stop onlyoffice)。
2、备份原始配置:sudo cp /etc/onlyoffice/documentserver/default.json /etc/onlyoffice/documentserver/default.json.bak。
3、编辑 default.json,定位到 "siteUrl" 字段,将其值改为完整域名,例如:"https://onlyoffice.example.com"。
4、若启用了 HTTPS,还需同步修改 "useHTTPS" 为 true,并确认 SSL 证书路径正确。
5、重启服务:sudo supervisorctl start all 或 sudo docker start onlyoffice。











