- Home
- Docs
- Instalação e configuração
- Community
- Versão Docker
- Configurando um Proxy Reverso para Nextcloud e ONLYOFFICE Docs
Configurando um Proxy Reverso para Nextcloud e ONLYOFFICE Docs
Introdução
Ao instalar múltiplas soluções de servidor em máquinas ou contêineres diferentes, a configuração correta de um servidor de roteamento (proxy) pode ser um desafio de infraestrutura.
Neste caso de uso específico, temos três entidades rodando simultaneamente:
- NGINX (Proxy Reverso):
http://nginx - Nextcloud (Aplicação Base):
http://nextcloud - ONLYOFFICE Docs (Motor de Edição):
http://onlyoffice
Todas as instâncias foram isoladas usando o Docker e estão expondo e se comunicando através da porta 80 internamente.
Para estabelecer a arquitetura e a conexão correta para o usuário final, as seguintes ações devem ser executadas:
- Personalização do NGINX para que qualquer requisição na rota raiz (
http://nginx/) abra a plataforma do Nextcloud. - Personalização do NGINX para que requisições sob o subdiretório (
http://nginx/editors/) apontem para o ONLYOFFICE Docs.
Acompanhe este artigo para saber como parametrizar os cabeçalhos de rede e configurar corretamente o NGINX, o Nextcloud e os editores do ONLYOFFICE para operarem em sintonia.
Passo 1. Configurando o roteamento proxy para o Nextcloud
Para fazer com que o Nextcloud responda corretamente por trás do NGINX, precisamos alterar os blocos de servidor (server blocks) e informar à aplicação que o endereço do proxy é seguro, adicionando-o à lista de domínios confiáveis (trusted domains).
As configurações de roteamento estão localizadas dentro do contêiner do NGINX, no arquivo /etc/nginx/conf.d/default.conf. Edite este arquivo para que o bloco de servidor principal fique da seguinte forma:
server {
listen 80;
location / {
proxy_pass_header Server;
proxy_pass http://nextcloud/;
}
}
/) ao final do caminho definido na diretiva proxy_pass. Ela é vital para reescrever as URLs corretamente.
Aplique as novas configurações e reinicie as rotas do NGINX com o comando:
service nginx reload
Agora, adicione o domínio do proxy à lista de permissões. Abra o arquivo de configuração do contêiner do Nextcloud em /var/www/html/config/config.php. Encontre a matriz trusted_domains e anexe o nome/IP do contêiner NGINX. Após as alterações, a matriz ficará estruturada de forma semelhante a esta:
'trusted_domains' => array (
0 => 'nextcloud',
1 => 'nginx',
),
Passo 2. Configurando o proxy para os editores de documentos
Retorne ao arquivo default.conf no servidor NGINX e crie um novo bloco location exclusivo para os editores do ONLYOFFICE:
location /editors/ {
proxy_pass http://onlyoffice/;
}
Ajuste de Cabeçalhos (X-Forwarded-Host):
Apenas adicionar o bloco de rotas não será suficiente para o editor funcionar sem erros. Por padrão de fábrica, o editor de documentos compila os caminhos virtuais gerando links baseados no endereço recebido na requisição inicial.
Como o editor não está diretamente exposto à web (o proxy faz o meio de campo), ele poderá tentar gerar links relativos quebrados (como http://nginx/apps/files/), assumindo que os recursos do ONLYOFFICE estão dentro da pasta do Nextcloud. Para corrigir e sobrescrever este comportamento de roteamento falho, precisamos injetar manualmente no cabeçalho HTTP o caminho exato onde o editor vive utilizando a diretiva X-Forwarded-Host.
Para alinhar todas as conexões (incluindo Websockets), edite o seu arquivo de configuração do NGINX adicionando as diretivas de upgrade no escopo superior. O arquivo final deve se parecer rigorosamente com isto:
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/;
}
}
Salve o arquivo e aplique um service nginx reload novamente para ativar a arquitetura final.
Passo 3. Instalando e acoplando o conector ONLYOFFICE-Nextcloud
Com as rotas prontas, utilize o conector de integração (app) para criar a ponte real entre as duas instâncias no nível de software.
O pacote do conector está disponível em código aberto no GitHub, no entanto, a maneira mais fácil e segura de ativá-lo é baixá-lo diretamente como administrador a partir da loja de aplicativos do próprio Nextcloud.
Após a ativação do plugin, navegue até a nova aba do ONLYOFFICE no painel de Configurações (Settings) do Nextcloud. Lá, procure pelo campo de endereço do servidor do editor de documentos e insira a rota parametrizada pelo nosso proxy:
http://nginx/editors/
Salve as configurações. Agora a sua plataforma Nextcloud direcionará todo o tráfego de visualização e edição de arquivos Office para a sub-rota protegida do ONLYOFFICE Docs através do servidor NGINX.