Configuring F5 load balancers to support Synchrony traffic

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform Notice: Server and Data Center Only. This article only applies to Atlassian products on the server and data center platforms.

Summary

This document is provided as-is

Atlassian applications allow the use of Load Balancers with our products, however Atlassian's Support Offerings do not cover infrastructure configuration. Consequently, Atlassian cannot guarantee providing any support for them.

If assistance with configuration is required, please raise a question on Atlassian Community.

This document is a template for how to configure F5 BIG-IP LTM load balancer for use with Confluence and Synchrony (Collaborative Editing).

This is aligned with the recommended configuration so that the load balancer can route traffic to both Confluence and Synchrony JVM.
See Possible Confluence and Synchrony Configurations for more details on this configuration.

This document isn't intended as a final solution, but as a starting point.

Environment

This document considers a standard deployment as follows:

  • Confluence Data Center with 2 nodes.
  • Managed Synchrony, which was made available on 6.12 onward.
    • Confluence and Synchrony running on the same server.
  • Standard ports are used as described in Ports used by Atlassian Applications.
    • Confluence Tomcat connector listening on port 8090 and Synchrony listening on port 8091.
  • If using HTTPS, SSL offloaded on the F5.


This document can (and should) still be used as starting point if your configuration differs from the above.

Solution

The F5 BIG-IP configuration is required at least on the following sections:

  • Virtual Server
  • iRule
  • Pool

Pool

Configure two different Pools, one for Confluence and another for Synchrony. You may give any name to the Pools. See an example below.

When running with managed Synchrony, the target servers for both pools should be the same.
The main difference in the configuration is on the target port.
When using the default ports, the target port for Confluence is 8090 and the target port for Synchrony is 8091.
See an example below for the Synchrony pool.

While standard TCP health checks may work on most cases, it is recommended to configure customized HTTP health checks for both Pools as below.

PoolTarget URLExpected HTTP responseExpected Body responseAdditional Information
Confluencehttp://<Confluence node IP>:8090/status200
{"state":"RUNNING"}
Clustering with Confluence Data Center
Synchronyhttp://<Synchrony node IP>:8091/synchrony/heartbeat200OKHow to check the status of Synchrony for Confluence Data Center

iRule

You need to configure an iRule so that requests to Synchrony are forwarded to the Synchrony pool and anything else is forwarded to the Confluence pool.

The following iRule works on most regular situations and can be used as a starting point if your organization needs additional configuration.

when HTTP_REQUEST {
    if { [string tolower [HTTP::path]] starts_with "/synchrony" } {
        pool <Synchrony pool> 
    } else {
        pool <Confluence pool> 
    }
}

See an example below.

Virtual Server

You need to configure one virtual server that will use both Confluence and Synchrony pools.

If using HTTPS, SSL must be offloaded on the F5, since Synchrony cannot offload SSL.

See an example below with the following mandatory configuration:

  • iRules: The Synchrony iRule must be used here; you may have any other iRule that is needed in your organization.
  • Default pool: It should be set to none since the iRule will manage it.
  • Default Persistence Profile: Session cookie stickiness must be configured so that all requests from the same session are sent to the same Confluence node.

  

See Also

Ports used by Atlassian Applications

Possible Confluence and Synchrony Configurations

Administering Collaborative Editing

Configuring Synchrony

Clustering with Confluence Data Center

How to check the status of Synchrony for Confluence Data Center

Migrate from a standalone Synchrony cluster to managed Synchrony


Last modified on Sep 2, 2021

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.