OnlyOffice и Nextcloud
Ура! Свершилось! Удалось-таки подружить OnlyOffice и Nextcloud.
Все предыдущие эксперименты с ними заканчивались неудачно. OnlyOffice ни в какую не хотел запускаться. Самой большой проблемой было то, что они располагались на одном сервере, в отличие от настоятельной рекомендации разработчиков располагать Nextcloud и OnlyOffice на разных компьютерах. Переворошил кучу сайтов, попробовал самые разные конфигурации — ни в какую. Не хотел, паршивец, запускаться и все тут.
Сегодня наткнулся в хелпцентре разработчиков на одну статью, в которой было описание как настроить проксирование данных с HTTPS на HTTP на одном сервере. Слегка изменил конфигурацию домена и — вуаля! Имеем полноценный редактор документов в режиме онлайн.
<VirtualHost *:443>
ServerName office.kini24.ru:443
ServerAdmin admin@kini24.ru
# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/office.kini24.ru/fullchain.pem
SSLCertificateChainFile /etc/letsencrypt/live/office.kini24.ru/chain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/office.kini24.ru/privkey.pem
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder on
#Proxysettings
# Encoded slashes need to be allowed
AllowEncodedSlashes On
# keep the host
ProxyPreserveHost On
ProxyRequests Off
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/$1$2"
ProxyPass / http://127.0.0.1:9980/
ProxyPassReverse / http://127.0.0.1:9980/
</VirtualHost>
SSLCipherSuite можно, конечно, сократить, но это уже мелочи. Все, что ниже настроек SSL, является обязательным для корректной работы редактора. Сам OnlyOffice установлен в виде докера:
# docker run -i -t -d -p 0.0.0.0:9980:80 -p 9443:443 --restart=always -v /opt/onlyoffice/DocumentServer/logs:/var/log/onlyoffice -v /opt/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -v /opt/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice -v /opt/onlyoffice/DocumentServer/db:/var/lib/postgresql onlyoffice/documentserver