Hi,
I’m running XWiki 18.3.0 in a Podman container behind an Apache reverse proxy. After setting up the instance I’m unable to use the Realtime WYSIWYG editor. The editor does not load.
Setup:
- XWiki 18.3.0 (Tomcat 10.1.55)
- Deployed as Podman container
- Apache httpd as reverse proxy with WebSocket support (ProxyPass with upgrade=websocket)
- F5 BIG-IP in front with WebSocket profile enabled
What I did:
- Fresh install of XWiki 18.3.0 (empty, no flavor)
- Installed the standard XWiki Flavor
Symptoms:
- The WebSocket handshake itself works fine (101 response is immediate, tested with curl directly against the container and through the full proxy chain)
- The CKEditor does not load. I can’t edit pages iun WYSIWYG mode
All Realtime extensions are consistently on 18.3.0:
- Realtime WebJar 18.3.0
- XWiki Platform - Realtime - API 18.3.0
- Realtime UI 18.3.0
The error persists after a full container restart.
Any ideas?
I encountered the same issue, and a similar issue when upgrading from 18.2 as a trial for a customer project.
I have currently disabled both CKEditor and Real-time… that’s the only way I could continue to add content.
The WYSIWYG editor is supposed to fail-safe (i.e. continue with realtime editing disabled) in case the connection to the Netflux WebSocket end-point fails. The fact that the editor doesn’t load suggests you might have a different problem. Would be great if you could:
- try cleaning the browser cache and reload; even if it’s a fresh installation, you might have tested a different XWiki version previously on the same URL, so some resources might be cached.
- alternatively you can use a private / incognito browser window
- check the JavaScript console (using the browser’s developer tools); I expect some error to be logged there, that might explain why the editor doesn’t load
- try disabling the
xwiki-realtime CKEditor plugin from the WYSIWYG editor administration section, to see if the editor loads; I doubt realtime editing is the problem, but you never know..
Hope this helps,
Marius
Hi Marius,
in the developer console everythings seems to be fine.
In the JavaScript console i only get
09:10:43.498 GET wss://xwiki-test.example.com/websocket/xwiki/netflux [HTTP/1.1 101 29ms]
09:11:43.590 We lost the connection to the editing session. webjar.bundle.min.js:28:363
09:12:50.745 We lost the connection to the editing session. webjar.bundle.min.js:28:363
So it seems to be a timeout issue. If i disable the xwiki-realtimeplugin, i can edit all pages again. However, the collaboration feature is important for us to switcxxh from Confluence to XWiki.
I even check our stack:
Client → Big IP F5 → Apache → Podmancontainer
- In the Big IP F5 i added a tcp profile to the virtualserver with a timeout of 3600s and a keep alive interval of 60s
- In the Apache Configuration the ProxyTimeout is set to 3600
And my Apache configuration:
<VirtualHost *:443>
ServerName xwiki-test.example.com
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite "EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA"
SSLCompression off
SSLCertificateFile /etc/pki/tls/certs/xwiki-test.crt
SSLCertificateKeyFile /etc/pki/tls/private/xwiki-test.key
AllowEncodedSlashes NoDecode
<Location />
Require all granted
</Location>
ProxyRequests Off
ProxyPreserveHost On
ProxyTimeout 3600
ProxyPass / http://[::]:8080/ nocanon upgrade=websocket
ProxyPassReverse / http://[::]:8080/ nocanon
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
</VirtualHost>
I don’t think i missed something.
I found the issue.
my F5 Rule was the problem:
when HTTP_REQUEST { if { [HTTP::header "Upgrade"] eq "websocket" } { HTTP::disable TCP::collect } }
After removing it works.