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.
Single load balancer endpoint: You must configure your load balancers for a single URL endpoint. You cannot configure different endpoint hosts to redirect to the same Tableau Server deployment. The single external URL is defined in
gateway.public.host
when you configure Tableau Server, as described in the procedure below.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 ingateway.trusted
andgateway.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 host name. If you are using an internal load balancer, you must use IP addresses, not host names.
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"
In most cases, if there are no alternative names for the load balancer, you may enter the same value for this key as you entered for the
gateway.public.host
key.
Configuration template example
You can configure all of the settings in one operation by customising the following configuration template example and creating a configKey json file.
Refer to the key-value pair descriptions above to customise the values for your organisation.
{ "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.