Назад | Перейти на главную страницу

Ошибка интеграции сервера документов Nextcloud (Onlyoffice / Collabora)

У меня проблема с интеграцией любого DocumentServer в Nextcloud.

Я пробовал это с Collabora, а с Onlyoffice я могу получить доступ к самой Collabora (интерфейс администратора https://collabora.mydomain.com/loleaflet/dist/admin/adminSettings.html) и перейдите на страницу приветствия Onlyoffice (https://onlyoffice.mydomain.com/welcome/) без проблем.

Моя установка выглядит следующим образом: у меня есть веб-сервер, который обрабатывает весь трафик HTTP (S) и работает как обратный прокси для Nextcloud и Collabora / Onlyoffice. Все эти службы устанавливаются на отдельных KVM, и я запускаю Collabora / Onlyoffice как контейнер докеров.

Сам Nextcloud работает без проблем, и я могу делать все, кроме Collabora или моего собственного Onlyoffice. Демо-сервер от Onlyoffice работает, поэтому я предполагаю, что он не имеет ничего общего с моей конфигурацией Nextcloud.

Я бы предпочел использовать Onlyoffice, но я также буду рад, если мне удастся запустить Collabora.

Nextcloud apache2 conf:

<VirtualHost *:80>
    ServerName nextcloud.mydomain.com
    ServerAdmin webmaster@wittmydomain
    Redirect / https://nextcloud.mydomain.com/
    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/sites/nextcloud_http_error.log
    CustomLog ${APACHE_LOG_DIR}/sites/nextcloud_http_access.log combined env=!dontlog
</VirtualHost>

<VirtualHost *:443>
    ServerName nextcloud.mydomain.com
    ServerAdmin webmaster@mydomain.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/mydomain.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem
    ProxyPreserveHost On
    ProxyPass / http://192.168.1.102/
    ProxyPassReverse / http://192.168.1.102/
    RewriteEngine On
    RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
    RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/sites/nextcloud_https_error.log
    CustomLog ${APACHE_LOG_DIR}/sites/nextcloud_https_access.log combined env=!dontlog
</VirtualHost>

Collabora apache2 conf:

<VirtualHost *:80>
    ServerName collabora.mydomain.com
    ServerAdmin webmaster@mydomain.com
    DocumentRoot /var/www/empty
    Redirect / https://collabora.mydomain.com/
    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/sites/collabora_http_error.log
    CustomLog ${APACHE_LOG_DIR}/sites/collabora_http_access.log combined env=!dontlog
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName collabora.mydomain.com
    DocumentRoot /var/www/empty
    SSLEngine on
    SSLProxyEngine on
    SSLProxyVerify None
    SSLProxyCheckPeerCN Off
    SSLProxyCheckPeerName Off
    ProxyPreserveHost On
    SSLCertificateFile /etc/letsencrypt/live/mydomain.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem

    # Encoded slashes need to be allowed
    AllowEncodedSlashes NoDecode

    # static html, js, images, etc. served from loolwsd
    # loleaflet is the client part of LibreOffice Online
    ProxyPass /loleaflet https://192.168.1.109:9980/loleaflet/ retry=0
    ProxyPassReverse /loleaflet https://192.168.1.109:9980/loleaflet/

    # WOPI discovery URL
    ProxyPass /hosting/discovery https://192.168.1.109:9980/hosting/discovery/ retry=0
    ProxyPassReverse /hosting/discovery https://192.168.1.109:9980/hosting/discovery/

    # Main websocket
    ProxyPassMatch "/lool/(.*)/ws$" wss://192.168.1.109:9980/lool/$1/ws/ nocanon

    # Admin Console websocket
    ProxyPass /lool/adminws wss://192.168.1.109:9980/lool/adminws/

    # Download as, Fullscreen presentation and Image upload operations
    ProxyPass /lool https://192.168.1.109:9980/lool/
    ProxyPassReverse /lool https://192.168.1.109:9980/lool/

    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/sites/collabora_https_error.log
    CustomLog ${APACHE_LOG_DIR}/sites/collabora_https_access.log combined env=!dontlog
</VirtualHost>
</IfModule>

Onlyoffice apache2.conf

<VirtualHost *:80>
    ServerName onlyoffice.mydomain.com
    ServerAdmin webmaster@mydomain.com
    Redirect / https://onlyoffice.mydomain.com/
    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/sites/onlyoffice_http_error.log
    CustomLog ${APACHE_LOG_DIR}/sites/onlyoffice_http_access.log combined env=!dontlog
</VirtualHost>

<VirtualHost *:443>
    ServerName onlyoffice.mydomain.com
    ServerAdmin webmaster@mydomain.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/mydomain.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem
    ProxyPreserveHost On
    ProxyPass / http://192.168.1.113/
    ProxyPassReverse / http://192.168.1.113/
    SetEnvIf Host "^(.*)$" THE_HOST=$1
    RequestHeader setifempty X-Forwarded-Proto https
    RequestHeader setifempty X-Forwarded-Host %{THE_HOST}e
    ProxyAddHeaders Off
    ProxyPassMatch (.*)(\/websocket)$ "ws://127.0.0.1:9981/$1$2"
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off


    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/sites/onlyoffice_https_error.log
    CustomLog ${APACHE_LOG_DIR}/sites/onlyoffice_https_access.log combined env=!dontlog
</VirtualHost>

Команда докера Collabora:

docker run -t -d -p 9980:9980 -e 'domain=nextcloud\\.mydomain\\.com' -e "username=admin" -e "password=examplepassword" --restart always --cap-add MKNOD collabora/code

Команда docker onlyoffice:

docker run -i -t -d -p 80:80 --restart=always onlyoffice/documentserver

Единственные журналы, которые я получаю от apache2 / Collabora / Onlyoffice / Nextcloud, не очень помогают. Только логи Nextcloud упоминают таймаут.