Add a Load Balancer

You can enhance the reliability of Tableau Server by running gateways on multiple nodes, and configuring a load balancer to distribute requests across the gateways. Unlike the repository process, which can be active or passive, all gateway processes are active. If one gateway in a cluster becomes unavailable, the load balancer stops sending requests to it. The load balancer algorithm you choose determines how the gateways will route client requests.

Notes: If you will be using Kerberos authentication, you need to configure Tableau Server for your load balancer before you configure Tableau Server for Kerberos. For more information, see Configure Kerberos.

Windows SSPI authentication is not supported with a load balancer.

Note the following as you configure your load balancer to work with Tableau Server:

  • Tested load balancers: Tableau Server clusters with multiple gateways have been tested with Apache and F5 load balancers.

    If you are using an Apache load balancer and creating custom administrative views, you need to connect directly to the Tableau Server repository. You cannot connect through the load balancer.

  • Tableau Server URL: When a load balancer is in front of a Tableau Server cluster, the URL that's accessed by Tableau Server users belongs to the load balancer, not the initial Tableau Server node.

  • Trusted host settings: The computer running the load balancer must be identified to Tableau Server as a trusted host. See the procedure below for how to configure Tableau Server.

  • Proxy server configurations: The settings used to identify a load balancer to Tableau Server are the same ones that are used to identify a proxy server. If your Tableau Server cluster requires both a proxy server and a load balancer, both must use a single external URL defined in gateway.public.host and all proxy servers and load balancers must be specified in gateway.trusted and gateway.trusted_hosts. For more information, see Configuring Proxies for Tableau Server.

Configure Tableau Server to work with a load balancer

Use the following key-value pairs to configure Tableau Server for a load balancer. You can set the values individually with the tsm configuration set command.

Or, use the configuration file template example at the end of this topic to create a configKey json file. After you have filled in the options with the appropriate values, pass the json file and apply settings with tsm commands.

Load balancer configuration key-value pairs

The key-value pairs described in this section can be set with the tsm configuration set command. After you have set all values, run the following command:

tsm pending-changes apply

gateway.public.host

Value: name

The value, name is the URL that will be used to reach Tableau Server through the load balancer.

For example, if Tableau Server is reached by entering tableau.example.com in a browser address bar, enter this command:

tsm configuration set -k gateway.public.host -v "tableau.example.com"

gateway.public.port

Value: port_number

By default, Tableau assumes that the load balancer is listening on port 80 for external communications. Use this key to specify a different port.

For example, if your load balancer is configured for SSL and listening on port 443, enter the following command:

tsm configuration set -k gateway.public.port -v "443"

gateway.trusted

Value: server

Specify the load balancer(s) IPv4 address or computer name.

The value for server can be a comma-separated list, for example:

tsm configuration set -k gateway.trusted -v "10.32.139.45, 10.32.139.46, 10.32.139.47"

or

tsm configuration set -k gateway.trusted -v "proxy1, proxy2, proxy3"

gateway.trusted_hosts

Value:

Specify alternate names for the load balancer(s), such as its fully-qualified domain name, any non-fully-qualified domain names, and any aliases. These are the names a user might type in a browser. Separate each name with a comma:

tsm configuration set -k gateway.trusted_hosts -v "name1, name2, name3"

For example:

tsm configuration set -k gateway.trusted_hosts -v "lb.example.com, lb, ftp.example.com, www.example.com"

Configuration template example

You can configure all of the settings in one operation by customizing the following configuration template example and creating a configKey json file.

Refer to the key-value pair descriptions above to customize the values for your organization.

{
 "configKeys": {
	"gateway.public.host": "tableau.example.com",
	"gateway.public.port": "443",
	"gateway.trusted": "proxy1, proxy2, proxy3",
	"gateway.trusted_hosts": "lb.example.com, lb, ftp.example.com, www.example.com"
	}
}

When you are finished, save the json file.

Pass the json file with tsm to set the configuration, and then apply settings by running the following commands:

tsm settings import -f /path/to/file.json

tsm pending-changes apply

For more information about using configKey schemes, see Configuration File Example.

Thanks for your feedback! There was an error submitting your feedback. Try again or send us a message.