Configurando proxy reverso para Nextcloud e editores ONLYOFFICE

Introdução

Ao instalar múltiplas soluções de servidor em máquinas diferentes, pode surgir um problema na configuração de um servidor proxy.

Neste caso específico, existem três máquinas diferentes com:

  • nginx — http://nginx,
  • Nextcloud — http://nextcloud,
  • editores ONLYOFFICE — http://onlyoffice.

Tudo foi instalado usando Docker e a porta 80.

Para estabelecer a conexão correta, as seguintes ações devem ser realizadas:

  • Personalização do Nginx para que uma requisição em http://nginx abra o Nextcloud,
  • Personalização do Nextcloud para trabalhar com editores de documentos, disponíveis em http://nginx/editors/.

Leia este artigo para saber como configurar corretamente um servidor proxy para nginx, Nextcloud e ONLYOFFICE Docs.

Passo 1. Configurando um proxy para o Nextcloud

Para fazer o proxy do Nextcloud via nginx, altere as configurações do nginx e adicione seu endereço à lista de domínios confiáveis (trusted domains) do Nextcloud.

As configurações necessárias estão localizadas no contêiner nginx em /etc/nginx/conf.d/default.conf. Deixe este arquivo da seguinte forma:

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

Preste atenção à barra (/) ao final do caminho em proxy_pass.

Atualize as configurações do nginx com:

service nginx reload

Agora adicione o domínio http://nginx. Abra a configuração no contêiner do Nextcloud em /var/www/html/config/config.php. Encontre ou adicione a seção trusted_domain lá e insira o endereço do nginx. Após as alterações, esta parte da configuração ficará assim:

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

Passo 2. Configurando um proxy para os editores de documentos

Novamente, abra o arquivo default.conf no servidor nginx e adicione mais um local (location):

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

Mas isso não será suficiente para os editores funcionarem. Por padrão, o editor de documentos gera links para recursos usando o endereço que vem em uma requisição. Como o editor não está conectado diretamente ao servidor proxy, ele gerará links independentemente do caminho virtual (ex: http://nginx/apps/files/). Isso não está correto, pois os arquivos em /apps/files/ estão localizados no servidor http://onlyoffice/.

Para corrigir isso, no cabeçalho da requisição, você precisa indicar o caminho para gerar os links com o cabeçalho “X-Forwarded-Host”.

Adicione o seguinte código no início do arquivo de configuração:

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

Passo 3. Instalando o conector ONLYOFFICE-Nextcloud

Use nosso conector pronto para vincular as instâncias do ONLYOFFICE e do Nextcloud entre si. O conector está disponível no GitHub, mas a maneira mais fácil é instalá-lo a partir da loja de aplicativos do Nextcloud.

Após a instalação, você verá uma nova opção no menu de configurações. Lá, você precisará especificar o endereço dos editores ONLYOFFICE — http://nginx/editors/.

Artigo com o tag:
Veja todas as etiquetas