The Content Editor Appliance is configured by using HAProxy for load balancing. Load balancing refers to efficiently distributing incoming network traffic across a group of backend servers, also known as a server farm or server pool.For Collaborative Editing to function correctly, you need to ensure that all the users editing the same document are served by the same Content Editor Appliance. Using the WOPI protocol, the https URL includes a unique identifier (WOPISrc) for use with this document. Thus load balancing can be done by using WOPISrc – ensuring that all URLs that contain the same WOPISrc are sent to the same Content Editor Appliance.
The browser reaches the proxy with the HTTPS protocol. The proxy terminates the HTTPS connection and passes traffic to backends via HTTP. Therefore, in CE’s config file, in /var/opt/novell/contenteditor/loolwsd/loolwsd.xml, or in the command line which starts loolwsd daemon, SSL should be disabled, and SSL termination should be enabled as shown below:
NOTE:For load balancing to work,all the nodes must run the same version of Content Editor Appliance. You cannot upgrade the Content Editor with one node and continue with the older version on another node.
frontend loolwsd bind *:443 ssl crt /path/to/your/certificate_and_key.pem mode http default_backend loolwsd backend loolwsd timeout tunnel 3600s mode http balance balance url_param WOPISrc check_post hash-type consistent server loolwsd01 127.0.0.1:9993 server loolwsd02 127.0.0.1:9994
The SSL termination option in the config file enables integration of Content Editor with SSL termination proxies, which handle incoming SSL connections, decrypt the SSL and pass on the unencrypted request to the server. In this setup only the proxy server has to have proper SSL settings, the Content Editor server is hidden behind it, and Content Editor communicates unencrypted with the proxy.
Add the following blocks to haproxy.cfg:
Frontend loolwsd bind *:443 ssl crt /Path to your certificate_and_key.pem http-request set-header X-HAProxy-loolwsd %[url_param(WOPISrc)] mode http default_backend loolwsd backend loolwsd timeout tunnel 3600s mode http balance hdr(X-HAProxy-loolwsd) server lool1 <CE Server 1 IP>:9980 server lool2 <CE Server 2 IP>:9980 server lool3 <CE Server 3 IP>:9980 server loolN <CE Server N IP>:9980
Here CE server 1, 2 and 3 are different CE nodes.
NOTE:If users are not able to perform an Online Edit when Filr is configured with AAF and CE is configured with Ha-Proxy Load Balancer, then add enable.content.editor.check=false to/opt/novell/filr/apache-tomcat/webapps/ssf/WEB-INF/classes/config/ssf-ext.properties and restart the Filr service.