ThingWorx High Availability > Load Balancers for ThingWorx High Availability
Load Balancers for ThingWorx High Availability
Any layer 7 load balancer that supports the following features can be used in the ThingWorx HA environment as a proxy for ThingWorx and the ThingWorx Connection Server:
HTTP and WebSocket traffic
If you are installing ThingWorx Flow, you must install the load balancer as HTTPS. For more information, see Configuring SSL/TLS for HAProxy.
Support of sticky sessions for HTTP traffic and/or IP-based stickiness
Sticky sessions are based on a cookie, and sessions are routed to the same server based on the cookie.
The same IP for different users could route to different machines.
IP-based means all traffic from a specific IP will be routed to the same server. This can be a problem with gateway-type scenarios.
Path-based routing
This is the ability to route to specific backends based on the URL or part of the URL.
Health checking on server endpoints
Optional: management of SSL termination and SSL internal endpoints
A sample configuration of a load balancer is provided in the HAProxy Example. The example is based on HAProxy (
By default, all routes should go to the platform servers, but the following routes should go to the Connection Server:
If you have installed ThingWorx Flow in ThingWorx HA, then the following routes should go to ThingWorx Flow:
All servers should be set up to only be part of load balancing based on their health configuration. When configuring the frequency of health checks, they should be run at a rate based on the tolerance for bad requests to be processed.
ThingWorx Foundation has a /health and /ready endpoint. The /Thingworx/ready endpoint should be used for the load balancer. It will return 200 when the server is ready to receive traffic.
The Connection Server runs health check requests on a specific port and will return 200 when healthy.
Was this helpful?