У меня проблема с интеграцией любого 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 упоминают таймаут.