Hola. Tengo un problema de configuración que no soy capaz de resolver. He estado consultando por internet, en estes foros de nexcloud, en la documentación y no soy capaz de resolverlo.
Voy a intentar explicar pormenorizadamente la estructura y los probelmas que tengo.
Actualmente tengo dos servidores en la red local, uno con ubuntu 18.04 (servidor A), con la IP 192.168.0.150 con un Nextcloud y un proxy inverso de apache. Este proxy inverso está funcionando correctamente y redireccionando a otros servicios que tengo en mi red local (por ejemplo un Jellyfin).
En otro servidor (servidor B), con debian 10 y la IP 192.168.0.100, tengo instalado el collabora online, siguiendo las indicaciones de su pagina oficial
Tengo un domínio para el servidor B de collabora, subdominio.dominio.com.
En el reverse proxy configuré un sitio collabora.conf con el contenido:
<VirtualHost *:80> ServerName subdominio.dominio.com ServerAlias www.subdominio.dominio.com Options -Indexes # Deben permitirse las barras codificadas AllowEncodedSlashes NoDecode # keep the host ProxyPreserveHost on ProxyPass / http://192.168.0.100:9980/ ProxyPassReverse / http://192.168.0.100:9980/ #static html, js, images, etc. serverd from loolwsd #loleaflet is the client part of collabora online ProxyPass /loleaflet http://192.168.0.100:9980/loleaflet retry=0 ProxyPassReverse /loleaflet http://192.168.0.100:9980/loleaflet # WOPI discovery URL ProxyPass /hosting/discovery http://192.168.0.100:9980/hosting/discovery retry=0 ProxyPassReverse /hosting/discovery http://192.168.0.100:9980/hosting/discovery # Capabilities ProxyPass /hosting/capabilities http://192.168.0.100:9980/hosting/capabilities retry=0 ProxyPassReverse /hosting/capabilities http://192.168.0.100:9980/hosting/capabilities # Main websocket ProxyPassMatch "/lool/(.*)/ws$" ws://192.168.0.100:9980/lool/$1/ws nocanon # Admin Console websocket ProxyPass /lool/adminws ws://192.168.0.100:9980/lool/adminws # Download as, Fullscreen presentation and Image upload operations ProxyPass /lool http://192.168.0.100:9980/lool ProxyPassReverse /lool http://192.168.0.100:9980/lool RewriteEngine on RewriteCond %{SERVER_NAME} =www.subdominio.dominio.com [OR] RewriteCond %{SERVER_NAME} =subdominio.dominio.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>
Siguiendo también las indicaciones de la documentación (https://www.collaboraoffice.com/code/apache-reverse-proxy/), concretamente el apartado 3.
En el servidor B, en el archivo de configuración /etc/loolwsd/loolwsd.xml, puse a false, en la línea 93 (enable) y la 94 (termination), en el apartado de SSL.
También puse el nombre del domínio en la línea 12, en server_name
Después, en el servidor A, instalé, por medio de certbot, un certificado de lets encrypt, para el sitio subdominio.dominio.com, que me generó el archivo de configuración para https, con el contenido:
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName doc.farinha.cat ServerAlias www.doc.farinha.cat Options -Indexes # Deben permitirse las barras codificadas AllowEncodedSlashes NoDecode # keep the host ProxyPreserveHost on ProxyPass / http://192.168.0.100:9980/ ProxyPassReverse / http://192.168.0.100:9980/ #static html, js, images, etc. serverd from loolwsd #loleaflet is the client part of collabora online ProxyPass /loleaflet http://192.168.0.100:9980/loleaflet retry=0 ProxyPassReverse /loleaflet http://192.168.0.100:9980/loleaflet # WOPI discovery URL ProxyPass /hosting/discovery http://192.168.0.100:9980/hosting/discovery retry=0 ProxyPassReverse /hosting/discovery http://192.168.0.100:9980/hosting/discovery # Capabilities ProxyPass /hosting/capabilities http://192.168.0.100:9980/hosting/capabilities retry=0 ProxyPassReverse /hosting/capabilities http://192.168.0.100:9980/hosting/capabilities # Main websocket ProxyPassMatch "/lool/(.*)/ws$" ws://192.168.0.100:9980/lool/$1/ws nocanon # Admin Console websocket ProxyPass /lool/adminws ws://192.168.0.100:9980/lool/adminws # Download as, Fullscreen presentation and Image upload operations ProxyPass /lool http://192.168.0.100:9980/lool ProxyPassReverse /lool http://192.168.0.100:9980/lool Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/doc.farinha.cat/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/doc.farinha.cat/privkey.pem </VirtualHost> </IfModule>
Con esta configuración, si en un navegador pongo el domínio o la IP:PUERTO me sale una página que únicamente pone OK.
Si accedo al IP:PUERTO/hosting/discovery o dominio/hosting/discovery me sale una página con el contenido de un xml:
<wopi-discovery>
<net-zone name="external-http">
<app name="image/svg+xml">
<action ext="svg" name="view" urlsrc="http://dominio/loleaflet/48938d4/loleaflet.html?"/>
</app>
<app name="application/vnd.ms-powerpoint"></app>
...
...
</net-zone>
</wopi-discovery>"
Si accedo a una de esas direcciones del archivo anterior (http://dominio/loleaflet/48938d4/loleaflet.html?) me sale una página con lo siguiente
Si accedo con la 192.168.0.100:9980/loleaflet/48938d4/loleaflet.html? me sale
Después, en el nextcloud, al configurar el plugin de collabora me sale al darle a Apply “Saved with error: Collabora Online should use the same protocol as the server instalation”
No se muy bien por donde tirar, por lo que veo, soy capaz de acceder al servidor Collabora, tanto desde la red local como desde fuera, pero supongo que tengo mal configurado el archivo loolwsd.xml.
Si alguien me puede ayudar os lo agradecería mucho.