如何为Nextcloud和ONLYOFFICE编辑器配置反向代理

我们的API文档中描述了将ONLYOFFICE与Nextcloud集成的大多数方法,但是在某些情况下,我们的用户在现实生活中可能会遇到一些棘手的问题。在这篇文章中,我们将向您展示如果所有三个服务器都安装了Nextcloud和ONLYOFFICE的代理服务器。

如何为Nextcloud和ONLYOFFICE编辑器配置反向代理

在我们的例子中,有三台不同的机器,它们具有:

  • nginx – http:// nginx,
  • Nextcloud – http:// nextcloud,
  • ONLYOFFICE编辑器– http:// onlyoffice。

一切都是使用Docker和端口80安装的。

我们要:

  • 自定义nginx,以便对http:// nginx的请求将打开Nextcloud,
  • 自定义Nextcloud以与http:// nginx / editors /上的文档编辑器一起使用。

让我们按照以下三步计划进行操作。

步骤1.为Nextcloud设置代理

要通过nginx代理Nextcloud,请更改nginx设置并将其地址添加到Nextcloud可信域列表中。有关受信任域的更多信息,请参见文档。

所需的设置位于nginx容器中的/etc/nginx/conf.d/default.conf。使这个文件看起来像:

 

server { 
        listen 80; 
        location / { 
            proxy_pass_header   Server; 
            proxy_pass          http://nextcloud/; 
        } 
}

注意prox_pass路径末尾的斜线。

使用以下命令刷新Nginx设置:

service nginx reload

现在添加http:// nginx域。在的Nextcloud容器中打开配置  /var/www/html/config/config.php。在trusted_domain此处找到或添加部分,然后添加nginx地址。所有更改生效后,配置的这一部分将如下所示:

‘trusted_domain’ => (0 => ‘nextcloud’, 1 => ‘nginx’)
步骤2.为文档编辑器设置代理

default.conf在Nginx服务器上再次打开并添加一个位置:


location /editors/ {     
    proxy_pass http://onlyoffice/; 
}

但这还不足以让编辑人员运行。默认情况下,文档编辑器使用请求中的地址生成到资源的链接。只要编辑器未连接到代理服务器,它就会生成链接,而与虚拟路径无关(例如,http:// nginx / apps / files /)。这是不正确的,因为/apps/files/它们位于http:// onlyoffice /服务器上。

为了解决这个问题,您需要在请求标头中用“ X-Forwarded-Host”标头指示生成链接的路径。

让我们在配置文件的开头添加以下代码:


proxy_set_header X-Forwarded-Host $http_host/editors;

另外两个重要的标头是“升级”和“连接”。它们允许使用websocket协议有效地运行ONLYOFFICE。

生成的default.conf文件将采用以下方式:


proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Forwarded-Host $http_host/editors;
server {
        listen 80;
        location / {
            proxy_pass_header Server;
            proxy_pass http://nextcloud/;
        }
        location /editors/ {
            proxy_pass http://onlyoffice/;
        }
}
步骤3.安装ONLYOFFICE-Nextcloud连接器

使用我们准备好的连接器将ONLYOFFICE和Nextcloud实例彼此链接。该连接器在GitHub上。

安装后,您将在设置菜单中看到一个新选项。在这里,您需要指定ONLYOFFICE编辑器的地址-http:// nginx / editors /。

来源:ONLYOFFICE官方博客,作者:Ivan