- Lab
- A Cloud Guru
Configuring HTTP Load Balancing Using HAProxy
HAProxy is well-known for its ability to load balance HTTP traffic. In this lab, we’re going to get hands-on with HAProxy, using it to load balance traffic for a number of nginx web server containers. We’ll get hands-on, configuring a 2-site installation, with round-robin load balancing for each site. Upon completion of the lab, you will be able to configure HAProxy to load balance HTTP connections.
Path Info
Table of Contents
-
Challenge
Configure HTTP Load Balancing
For this objective, we're going to configure HTTP load balancing for our 2 sites.
Before we start, check the status of our
nginx
containers to make sure they're up and running.Perform the following:
- Configure 2 HTTP
frontends
, 1 for each site.- Make the first site available on port
8000
. - Make the second site available on port
8100
.
- Make the first site available on port
- Configure 2 HTTP
backends
, one for each site.- Use
roundrobin
load balancing for each site. - Add all 3
nginx
containers for each site to thebackend
.
- Use
- Add a configuration block for the
stats
web page.- Use port
8050
for thestats
page. - Set the
mode
tohttp
.
- Use port
- Enable and start the
haproxy
service. Check your work.- Make sure the
haproxy
service is enabled and started. - Use
curl
to confirm that you can connect to the following and that load balancing is working:- http://127.0.0.1:8000/test.txt
- http://127.0.0.1:8100/test.txt
- Confirm you can connect to the
stats
web page on port8050
.
- Make sure the
- Configure 2 HTTP
-
Challenge
Test HTTP Load Balancing
For this objective, we're going to test round-robin load balancing on both sites and confirm it is working as intended.
Perform the following:
- We're going to see how HAProxy handles down servers.
- Use the
podman
command to stop thesite1_server3
container. - Use the
podman
command to stop thesite2_server2
container. - Use the
podman
command to show the status of all containers.- Confirm the 2 containers you stopped are exited.
- Reload the sites using a browser or
curl
, and confirm things still work and that traffic is routed around the down servers. - See the change in the
stats
web page. Refresh and see if HAProxy has picked up the down servers. - Use the
podman
command to stop all the remaining containers.- See the change in the
stats
web page. Refresh and see if HAProxy has picked up the down servers. - Try to connect to each site. See how HAProxy responds.
- See the change in the
- Use the
- Use the
podman
command to start all the containers.- Use the
podman
command to show the status of all containers. - See the change in the
stats
web page. Refresh and see if HAProxy has picked up the up servers. - Try to connect to each site. See how HAProxy responds.
- Use the
- We're going to see how HAProxy handles down servers.
What's a lab?
Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.
Provided environment for hands-on practice
We will provide the credentials and environment necessary for you to practice right within your browser.
Guided walkthrough
Follow along with the author’s guided walkthrough and build something new in your provided environment!
Did you know?
On average, you retain 75% more of your learning if you get time for practice.