本文由AI翻译

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

介绍

在不同的机器上安装多个服务器解决方案时,可能会出现配置代理服务器的问题。

在这种情况下,有三台不同的机器:

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

所有内容都是使用 Docker 和 80 端口安装的。

为了建立正确的连接,应执行以下操作:

  • 自定义 Nginx,使得在 http://nginx 上的请求可以打开 Nextcloud,
  • 自定义 Nextcloud 以与文档编辑器一起工作,编辑器可通过 http://nginx/editors/ 访问。

阅读本文以了解如何正确配置 nginx、Nextcloud 和 ONLYOFFICE 文档的代理服务器。

步骤 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/; 
        } 
}

注意 proxy_pass 路径末尾的斜杠。

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

service nginx reload

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

trusted_domain => (0 => nextcloud’, 1 => nginx’)

步骤 2. 为文档编辑器设置代理

再次打开 nginx 服务器上的 default.conf 并添加另一个位置

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

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

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

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

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 上找到,但最简单的方法是从 Nextcloud 应用商店 安装。

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

在您自己的服务器上托管 ONLYOFFICE 文档,或在云端使用

文章: 标签:
浏览所有标签