How to Set Up a Load Balancer on an s0.d1.small BMC Server


A load balancer is an important tool for managing the traffic of a website or application. It helps to ensure that the server is not overloaded and that the user experience is optimized. Setting up a load balancer on an s0.d1.small BMC Server can be a complex process, but with the right steps and guidance, it can be done quickly and easily. In this guide, we will discuss the steps necessary to set up a load balancer on an s0.d1.small BMC Server. We will cover topics such as configuring the server, setting up the load balancer, and testing the setup. By the end of this guide, you should have a fully functioning load balancer on your s0.d1.small BMC Server.

How to Set Up a Load Balancer on an s0.d1.small BMC Server

1. Install the necessary software. You will need to install a web server, such as Apache or Nginx, and a load balancer, such as HAProxy or Nginx Plus.

2. Configure the web server. You will need to configure the web server to listen on the appropriate ports and to serve the appropriate content.

3. Configure the load balancer. You will need to configure the load balancer to listen on the appropriate ports and to forward requests to the appropriate web server.

4. Test the configuration. You will need to test the configuration to ensure that the load balancer is correctly forwarding requests to the web server.

5. Monitor the performance. You will need to monitor the performance of the load balancer to ensure that it is performing as expected.


The phoenixNAP Bare Metal Cloud preconfigured single CPU instance is an ideal solution for load balancing. A software load balancer does not require demanding hardware and the cheapest BMC instance is more than enough to get you started.

This tutorial explains an example setup for a load balancer on phoenixNAP’s s0.d1.small BMC server instance.

Setting Up a Load Balancer on an s0.d1.small BMC Instance


  • Access to the command line/terminal with sudo privileges.
  • Access to the browser with a stable internet connection.
  • A Bare Metal Cloud (BMC) account.

What is Load Balancing?

Load balancing distributes high traffic volumes across multiple servers, ensuring no single instance is overworked. The end goal of load balancing is overall processing efficiency and a better user experience.

The load balancer monitors the backend server health and ensures optimal requests and server resource handling. For example, load balancers help reroute traffic when a server can’t receive a request.

S.0 BMC Instance as a Load Balancer

Software-based load balancers are easy to set up on a BMC server as a Linux process. For example, the HAproxy server utility is simple to install and configure as a load balancer on a BMC instance.

Load balancer architecture using S0 small BMC instance

The setup has the following structure:

  • The small BMC instance acts as a load balancer.
  • The three testing servers act as a server farm.

Follow the instructions to set up an example local web application with a load balancer.

Step 1: Generate SSH Keys

Generate a key pair on the machine you will use to connect to BMC via SSH. Skip this step if there is a saved key on the BMC portal you’d like to use.

1. Open the terminal (CTRL+ALT+T).

2. Generate a new SSH key:


The command starts the keygen process.

3. Follow the steps to create the key pair. If there are existing keys you want to keep saved under id_rsa, change the key name. Otherwise, press Enter to choose the default location and overwrite the existing keys.

Terminal output of ssh-keygen

Add a passphrase for additional security.

Terminal output of generated key pair

When the process completes, the output prints the key pair location and the randomart image.

4. Open the file using Vi:

sudo vi ~/.ssh/

5. Copy the file contents and exit the editor:


The following step uses the contents.

Step 2: Deploy a s0.d1.small BMC Instance and Connect via SSH

1. Log in to the BMC portal using your phoenixNAP Client Portal credentials.

2. Click Deploy New Server on the Servers page.

Deploy new server button location on BMC portal

3. Select the Location for the server in the first section. Choose a billing model right after.

4. Select the s0.d1.small BMC instance from the Server section.

Selecting an s0.d1.small BMC server instance.

5. Chose an operating system in the following section. We’re using Ubuntu Bionic. Press Next to proceed to the Instance Details page.

Note: Typically, an Ubuntu server is available in under two minutes.

6. Enter the hostname and an optional description for the server.

7. If you generated a new key in the previous section, click Add a new Public SSH Key and paste the contents. If you have a key saved in the BMC portal, type in the saved key name and select it from the list.

8. Buy a IP allocation or assign an existing allocation. To test this guide, at least one public IP is necessary. /31 IP allocation is the minimum requirement for Linux.

9. Skip the Public Networks and Default Gateway options for now.

10. Review the details once more and click the Deploy New Server button to complete the process when you’re ready.

11. Locate your BMC instance on the server list and click the name to see instance details. The server is ready when the status displays as Powered On.

Server details powered on indicator

View the assigned IPs column in the Network & IP Settings tab on the Server Details page.

Assigned IPs in the server details section.

Use a public IP address for the next step.

12. SSH into the machine by running the following command in the terminal:

ssh [email protected]<your public IP>
ssh server connection terminal output

If the output asks to confirm the authenticity, type in yes to add the location to known hosts and connect to the BMC server.

Step 3: Install HAProxy

1. Add the HAProxy repository:

sudo add-apt-repository ppa:vbernat/haproxy-1.8
Terminal output of adding HAProxy repository

2. Press Enter when asked to add the repository.

3. After the process completes, update the packages:

sudo apt-get update

4. Lastly, install HAProxy with:

sudo apt-get install haproxy

Step 4: Create Test Web Servers

1. Create three directories which will act as servers:

mkdir server{1..3}
Server folder structure

2. Create a landing page for each server:

touch server{1..3}/index.html

3. Edit each index.html file:

sudo vi server1/index.html

4. Add the following contents:

<!DOCTYPE html>
        <title>Server 1</title>
Contents of index.html

5. Add the same contents to server2/index.html and server3/index.html. Change the title tags contents to Server 2 and Server 3 respectly.

Step 5: Configure HAProxy Load Balancer

1. Edit the default configuration for HAProxy:

sudo vi /etc/haproxy/haproxy.cfg

2. Delete everything from the file and add the following contents:

  mode http
  timeout client 10s
  timeout connect 5s
  timeout server 10s
  timeout http-request 10s

frontend myfrontend
  default_backend myservers

backend myservers
  balance roundrobin
  server server1
  server server2
  server server3
HAProxy config file contents

The configuration file has three sections:

  • defaults are the shared settings defined on all following sections. The section sets the wait times to help avoid common connection problems.
  • frontend defines the address and port where HAProxy receives requests. The default_backend line points to where the load balancer should relay the connections.
  • backend stores the server addresses and ports for multiple servers, defined in the following step. The load balancing algorithm is set to round robin.

3. Save the file and close:


4. Restart HAProxy to apply the configuration:

sudo systemctl restart haproxy

The output does not print anything to the console.

Step 6: Run Servers and Test Load Balancer

1. Open three more terminal tabs and log into the server:

ssh [email protected]<your public IP>

There are now four terminal tabs open.

2. In each tab, navigate to the server folders:

cd server1
cd server2
cd server3

3. Run the test server in each terminal tab on a different port:

python3 -m http.server 8000 --bind
python3 -m http.server 8001 --bind
python3 -m http.server 8002 --bind
Starting test web server using Python

4. In the fourth tab, test the connection using curl:


Run the command two more times to confirm the load balancer works correctly.

Testing load balancer using curl command

The round robin load-balancing algorithm ensures the requests route to each server once to balance the load.

Why Use S.0 as a Load Balancer?

Configuring an S.0 BMC server as a load balancer is an inexpensive way of maximizing the speed and resource capacity of a cluster of servers.

Some benefits of using the s0.d1.small BMC server as a load balancer include:

  • Low cost. The instance is the smallest and cheapest offer, and the configuration easily handles the load balancer workload. Pay on an hourly basis, per month, or make an extended reservation depending on your use case.
  • Effective network overload handling. The general-purpose instance is commonly used for high-traffic websites and utilizes all the resources in a balanced way.
  • Increased security and high availability. The network is robust, fast, low-latency, and reliable. Additionally, each server comes with 20 Gbps DDoS protection to ensure maximum availability and security when under attack.


After reading this article, you know how to set up the s0.d1.small BMC instance as a load balancer on the frontline of your server farm.

This inexpensive general-purpose instance has many other use cases and can be configured to serve as a powerful firewall or sandbox environment for Dev teams.

How to Set Up a Load Balancer on an s0.d1.small BMC Server

Load balancing is an important part of any server infrastructure. It helps to ensure that your server is able to handle the load of multiple requests without crashing or slowing down. Setting up a load balancer on an s0.d1.small BMC server is a relatively simple process that can be completed in a few steps.

Step 1: Install the Load Balancer Software

The first step in setting up a load balancer on an s0.d1.small BMC server is to install the appropriate software. There are several different load balancer software packages available, but the most popular is HAProxy. To install HAProxy, you will need to use the apt-get command. Once the installation is complete, you will need to configure the software to work with your server.

Step 2: Configure the Load Balancer

Once the load balancer software is installed, you will need to configure it to work with your server. This involves setting up the virtual IP address, port numbers, and other settings. You will also need to configure the load balancer to forward requests to the appropriate servers. This can be done using the HAProxy configuration file.

Step 3: Test the Load Balancer

Once the load balancer is configured, you will need to test it to make sure it is working properly. This can be done by sending a few requests to the load balancer and checking the response times. If the response times are acceptable, then the load balancer is working correctly.

Step 4: Monitor the Load Balancer

Finally, you will need to monitor the load balancer to make sure it is performing as expected. This can be done by using a monitoring tool such as Nagios or Cacti. These tools will allow you to track the performance of the load balancer and make sure it is working properly.

Setting up a load balancer on an s0.d1.small BMC server is a relatively simple process that can be completed in a few steps. By following the steps outlined above, you can ensure that your server is able to handle the load of multiple requests without crashing or slowing down.

Jaspreet Singh Ghuman

Jaspreet Singh Ghuman

Passionate Professional Blogger, Freelancer, WordPress Enthusiast, Digital Marketer, Web Developer, Server Operator, Networking Expert. Empowering online presence with diverse skills.

jassweb logo

Jassweb always keeps its services up-to-date with the latest trends in the market, providing its customers all over the world with high-end and easily extensible internet, intranet, and extranet products.

Jassweb, Rai Chak, Punjab, India. 143518