Posted about 5 years ago. Visible to the public.

Load Balancers

As you can see in Infrastructure basics your application servers are placed behind three load balancers. They accept all HTTP/S traffic and forward the requests to the application servers. Using them has the following benefits:

Balancing the traffic between all your application servers

No matter how many application servers you have (see scaling horizontally), the load balancer will divide the incoming traffic evenly between the Application servers. If you have differently sized application servers it is possible to accommodate for this by weighing some servers more than others.

By default new requests will be forwarded to the application server with the least connections. This is usually the application server with the lowest load. Health checks can mark an application server as down and it will not receive any more requests.

The load balancing mode can be changed. For example, we can forward requests based on a hash of headers or IP addresses to the same application server all the time. This can be useful if you store session information in the servers memory which is not shared with the other application servers.

If your load balancer configuration was created prior to April, 25th 2018, it is likely that the hashed mode is still in use. In detail this means requests from the same IP (either v4 or v6) are always forwarded to the same application server unless that server is down.

Increasing the reliability of the hosting

If one application server has an outage the load balancers will stop forwarding traffic to it. This way your application stays online even if one of your servers is down. To take full advantage of this you can read about load balancer health checks.


If you want to add a dedicated maintenance page take a look at our HowTo and keep in mind which HTTP Status Codes you want to use.

Error page for unexpected downtimes of your application

If our Loadbalancer is not able to receive a proper responses (per default those are 2xx, 3xx, 4xx) it will show a default makandra-hosting maintenance page. This is the case if all application servers are down or if the application is responding with 5xx errors.

You can replace our default page with a custom maintenance page. Please send us a HTML file which contains all relevant content. If you want to ship assets on this page they must be included in the HTML file.

SSL/TLS offloading

Terminating the SSL/TLS connection on the load balancers keeps the encryption/decryption load away from your application servers. Thus your application server can use more resources for your application. The load balancer does the SSL handshake with the client and communicates without SSL in our internal network.
Further information about SSL certificates can be found here.

Growing Rails Applications in Practice
Check out our new e-book:
Learn to structure large Ruby on Rails codebases with the tools you already know and love.

Owner of this card:

Claus-Theodor Riegg
Last edit:
12 months ago
by Marius Schuller
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Claus-Theodor Riegg to opscomplete
This website uses short-lived cookies to improve usability.
Accept or learn more