Skip to main content
pdf?stylesheet=default
Blackboard Help

Optional - Set Up Load Balancing for Multiple Application Servers

Load Balancing distributes workloads across multiple computing resources, in this context Blackboard Learn application servers, optimizing resource use, maximizing throughput, minimizing response time, and avoiding overload of any single server. Additionally may increase reliability through redundancy of the application servers. Blackboard Learn supports load balanced configurations.

Load Balanced Configurations

There are two supported configurations in a load balanced environment each with the ability to support TLS-Offloading.

Before attempting a Load Balanced configuration it is recommended to read the Load Balancing - Configuration and Best Practices help topic.

Blackboard Learn Only

Complete the following steps before proceeding with setting up your load balancing, performing the necessary validation checkpoints at the end of each step:

  1. Install or Upgrade Learn
  2. Optional - TLS Configuration​
  3. Optional - Set Up Port Forwarding for Single Application Server 

Blackboard Learn Fronted with a Webserver

Complete the following steps before proceeding with setting up your load balancing, performing the necessary validation checkpoints at the end of each step:

  1. Install or Upgrade Learn
  2. Optional - Front Learn with a Webserver (Webserver TLS is covered in this document)

After configuration of the load balancer is completed proceed to:

  1. Troubleshoot the Learn Environment Post Install or Upgrade
  2. Test the Learn Environment Post Install or Upgrade

Update Learn Configuration

If the frontend port and protocol were not set at first installation, these must be updated to match Apache, IIS default website, or Load Balancer details.

  1. Open bb-config.properties in a text editor such as vi or Notepad.
  2. Locate the bbconfig.frontend section and add the details for the Frontend.

    bbconfig.frontend.fullhostname=<server hostname>
    bbconfig.frontend.portnumber=443
    bbconfig.frontend.protocol=https

    Learn requires TLS at the point of access by users. If Apache or IIS is the point users access the service, these options need to match Apache/IIS. If the Load Balancer is the point of access by users, options need to match the Load Balancer.

    Note that bbconfig.ssl.offloaded and bbconfig.ssl.offloaded.hostname tags are no longer necessary for offloading TLS and have been removed from bbconfig. TLS offloading is now indicated via inclusion of the x-forwarded-proto in requests.

  3. Restart Learn and propagate the changes by executing:
  4. /usr/local/blackboard/tools/admin/PushConfigUpdates.sh

Setting up the Load Balancer

A successful installation of Blackboard Learn that is accessible via the expected urls and ports is required before attempting to set up a load balanced configuration. This information is covered in the Install Learn and Upgrade Learn topics as well as Post Install and Upgrade Tasks.

Once Blackboard Learn is configured and running on the default ports of 8080 and 8443 with the installer generated or a commercial certificate, you may set up the load balancer.

Session Affinity

The load balancer must be configured to manage session affinity via session cookies. Refer to the load balancer vendor's documentation for details on adding session cookies.

Ports and Forwarding

The Load Balancer should be configured to receive requests on the following ports:

HTTP: 80
HTTPS: 443

The load balancer will be configured to redirect port 80 to port 443 and then forward the request to either a Blackboard Learn Only or Blackboard Fronted with a Web Server application server configuration.

All the Application Servers need access to the Internet in order for some services (such as Cloud services, SafeAssign, RSS feeds, Course Cartridges, and some of the ‘mashups’ like YouTube embedding) to work successfully.

Blackboard Learn Only

Once the above steps and settings have been completed configure the load balancer will be configured to redirect requests from port 80 to port 443 and then forward the 443 request to the application server proxy connector on port 8081 if using TLS offloading or 8444 if using TLS Re-encryption

Forwarded Request Header Settings

In order for Blackboard Learn to receive the client browser IP address for logging, the X-Forwarded-For header must be added to requests forwarded to the application server.

Similarly, in order for Blackboard Learn to not attempt to decrypt/encrypt the data stream​ when offloading TLS at the load balancer, the following header needs to be added to the forwarded request: X-Forwarded-Proto: https

Refer to the load balancer vendor's documentation for details on adding X-Forwarded headers and configuring TLS Offloading.

Blackboard Learn Fronted with a Web Server

Once the above steps and settings have been completed configure the load balancer to redirect from port 80 to port 443 and then forward the 443 request to the webserver on port 443.

Forwarded Request Header Settings

If you are using another proxy in the chain such as ARR confirm it is not setting a X-Forwarded-For header as this would overwrite the X-Forwarded-For set by the load balancer.
e.g. on ARR to avoid overwriting the header change the name of the header set by ARR. Application Request Routing Cache->Server Proxy Settings>Preserve client IP in the following header-> X-Forwarded-For-xx

The necessary X-Forwarded-For header is added by mod_proxy_http.

X-Forwarded-Proto:https​ is added in the TLS VirtualHost configuration if using TLS-Offloading at the webserver layer.