Configurando um Proxy Reverso para Nextcloud e ONLYOFFICE Docs
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, há três máquinas diferentes com
- nginx — http://nginx,
- Nextcloud — http://nextcloud,
- editores do ONLYOFFICE — http://onlyoffice.
Tudo foi instalado usando o Docker e a porta 80.
Para estabelecer a conexão correta, as seguintes ações devem ser executadas:
- Personalização do Nginx para que uma requisição em http://nginx abra o Nextcloud,
- Personalização do Nextcloud para funcionar com os editores de documentos, disponíveis em http://nginx/editors/.
Leia este artigo para saber como configurar corretamente um servidor proxy para o nginx, o Nextcloud e o 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 o endereço dele à lista de domínios confiáveis do Nextcloud.
As configurações necessárias estão localizadas no contêiner do 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 no final do caminho 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 e adicione o endereço do nginx. Depois que todas as alterações entrarem em vigor, 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 default.conf no servidor nginx e adicione mais um location
location /editors/ {
proxy_pass http://onlyoffice/;
}
Mas isso não será suficiente para o editor funcionar. Por padrão, o editor de documentos gera links para os recursos usando o endereço recebido na requisição. Como o editor não está conectado ao servidor proxy, ele gerará links sem considerar o caminho virtual (por exemplo, http://nginx/apps/files/). Isso não está correto, pois os /apps/files/ estão localizados no servidor http://onlyoffice/.
Para corrigir isso, no cabeçalho da requisição, você precisa indicar o caminho para a geração dos 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 o nosso conector pronto para conectar 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 Configurações. Lá, você precisará especificar o endereço dos editores do ONLYOFFICE — http://nginx/editors/.