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.
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.
For versions earlier than CE 23.2, in the Content Editor’s config file, in /var/opt/novell/contenteditor/loolwsd/loolwsd.xml, or in the command line which startsloolwsd daemon, disable SSL and enable SSL termination.
For versions CE 23.2 and later, in the Content Editor’s config file, in/etc/coolwsd/coolwsd.xml, or in the command line which starts coolwsd daemon, disable SSL and enable SSL termination.
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.
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 url_param WOPISrc check_post hash-type consistent server loolwsd01 127.0.0.1:9993 server loolwsd02 127.0.0.1:9994
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.
frontend coolwsd bind *:443 ssl crt /path/to/your/certificate_and_key.pem mode http default_backend coolwsd backend coolwsd timeout tunnel 3600s mode http balance url_param WOPISrc check_post hash-type consistent server coolwsd01 127.0.0.1:9993 server coolwsd02 127.0.0.1:9994
Start Docker containers as described above, with -p 127.0.0.1:9993:9980 and -p 127.0.0.1:9994:9980.
Add the following blocks to haproxy.cfg:
Frontend loolwsd bind *:443 ssl crt /Path to your certificate_and_key.pem balance balance url_param WOPISrc check_post mode http default_backend coolwsd backend coolwsd timeout tunnel 3600s mode http balance hdr(X-HAProxy-loolwsd) server cool1 <CE Server 1 IP>:9980 server cool2 <CE Server 2 IP>:9980 server cool3 <CE Server 3 IP>:9980 server coolN <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.