Websocket Error for Collobora Online - Plesk Onxy + Apache + Cloudflare + Azure VM

Hello everyone,

I have been struggling to install Collobora Online for couple of days. I have been successful till that point.

I have an Ubuntu server on Azure with Plesk Onxy. (Plesk Onyx v17.5.3_build1705170317.16 os_Ubuntu 16.04)

Nextcloud is working perfectly and it looks like Docker also works great.

Here is some information about the setup:

Nextcloud: https://cloud.quantumen-host.com
Collobora: https://collobora.quantumen-host.com (https://collobora.quantumen-host.com/hosting/discovery outputs desired XML)

All subdomains are encrypted by Let’s Encrypt and Cloudflare is only used to transfer requests. I don’t use Cloudflare system for those subdomains.


Additional directives for HTTPS

# Encoded slashes need to be allowed
AllowEncodedSlashes NoDecode

# Container uses a unique non-signed certificate
SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off

# keep the host
ProxyPreserveHost On

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

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

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

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

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

I’m using PHP 7.1.6 Apache for both subdomains.

Here is a screen shot when I open an .ods file.

This is the error log of Plesk:

AH01144: No protocol handler was valid for the URL /lool/.......... If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

I have checked all possible reasons.

a2enmod proxy
a2enmod proxy_wstunnel
a2enmod proxy_http
a2enmod ssl

All of them are enabled, restarted apache, restarted server, etc. But no avail!

The only thing that doesn’t work, WSS:// WebSocket url.

This is Docker Log:

..........................................+++
e is 65537 (0x10001)
Signature ok
subject=/C=DE/ST=BW/L=Stuttgart/O=Dummy Authority/CN=localhost
Getting CA Private Key
kit-00028-00026 23:06:35.399356 [ loolkit ] ERR  symlink("../lo","/opt/lool/child-roots/28/opt/collaboraoffice5.3") failed (errno: File exists)| kit/Kit.cpp:271
kit-00028-00026 23:06:35.399476 [ loolkit ] ERR  Poco Exception: Exception: symlink() failed| kit/Kit.cpp:1895
wsd-00024-00024 23:07:24.985088 [ loolwsd ] FTL  Failed to fork child processes.| wsd/LOOLWSD.cpp:2405
Failed to fork child processes.
wsd-00024-00024 23:07:24.985248 [ loolwsd ] FTL  Failed to fork child processes.| wsd/LOOLWSD.cpp:2551
Failed to fork child processes.
wsd-00024-00024 23:07:24.985384 [ loolwsd ] WRN  Waking up dead poll thread [admin], started: false, finished: false| ./net/Socket.hpp:445
wsd-00024-00024 23:07:24.985403 [ loolwsd ] WRN  Waking up dead poll thread [admin], started: false, finished: false| ./net/Socket.hpp:445
<shutdown>-00024 23:07:24.985650 [ loolwsd ] WRN  Waking up dead poll thread [accept_poll], started: false, finished: false| ./net/Socket.hpp:445
<shutdown>-00024 23:07:24.985665 [ loolwsd ] WRN  Waking up dead poll thread [accept_poll], started: false, finished: false| ./net/Socket.hpp:445
<shutdown>-00024 23:07:24.985671 [ loolwsd ] WRN  Waking up dead poll thread [websrv_poll], started: false, finished: false| ./net/Socket.hpp:445
<shutdown>-00024 23:07:24.985684 [ loolwsd ] WRN  Waking up dead poll thread [websrv_poll], started: false, finished: false| ./net/Socket.hpp:445
<shutdown>-00024 23:07:24.985693 [ loolwsd ] WRN  Waking up dead poll thread [accept_poll], started: false, finished: false| ./net/Socket.hpp:445
<shutdown>-00024 23:07:24.985698 [ loolwsd ] WRN  Waking up dead poll thread [accept_poll], started: false, finished: false| ./net/Socket.hpp:445
<shutdown>-00024 23:07:24.985772 [ loolwsd ] WRN  Waking up dead poll thread [websrv_poll], started: false, finished: false| ./net/Socket.hpp:445
<shutdown>-00024 23:07:24.985787 [ loolwsd ] WRN  Waking up dead poll thread [websrv_poll], started: false, finished: false| ./net/Socket.hpp:445
frk-00026-00026 23:07:24.986373 [ forkit ] FTL  Pipe closed.| common/IoUtil.cpp:309
Generating RSA private key, 2048 bit long modulus
.......................................................+++

I’m using bluedart/collabora image which is the only way I tried to get so far. (Source: https://hub.docker.com/r/bluedart/collabora/)

What could be the reason for that?

Thank you in advance for your help.

I’m considering creating a video tutorial for all of those process as soon as I fix this issue, thinking about all the people who use Plesk+Cloudflare+Azure.

Any idea? I’m stuck :frowning:

there are already 2 issues in the code github with that. I just updated my code image, that works fine. i suggest you do a docker pull collabora/code, check if there is any update, if yes then do a
docker stop <cid> && docker rm <cid> && docker run <your_parameters>

I have pulled collabora/code instead of bluedart/collabora and run the docker.

Still having the same error:

AH01144: No protocol handler was valid for the URL /lool/https:%2F%2Fcloud.quantumen-host.com%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F96565_ocl386fbmi38?access_token=s6gjIVjeQYQilLGJibLI6T6bprjJwzrQ&access_token_ttl=0&permission=edit/ws. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

did you try that without cloudflare and that stuff if it works then?

Yes I tried. Still the same unfortunately :frowning: