- Lab
-
Libraries: If you want this lab, consider one of these libraries.
- Cloud
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.
Lab 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
nginxcontainers 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
roundrobinload balancing for each site. - Add all 3
nginxcontainers for each site to thebackend.
- Use
- Add a configuration block for the
statsweb page.- Use port
8050for thestatspage. - Set the
modetohttp.
- Use port
- Enable and start the
haproxyservice. Check your work.- Make sure the
haproxyservice is enabled and started. - Use
curlto 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
statsweb 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
podmancommand to stop thesite1_server3container. - Use the
podmancommand to stop thesite2_server2container. - Use the
podmancommand 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
statsweb page. Refresh and see if HAProxy has picked up the down servers. - Use the
podmancommand to stop all the remaining containers.- See the change in the
statsweb 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
podmancommand to start all the containers.- Use the
podmancommand to show the status of all containers. - See the change in the
statsweb 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.
About the author
Real skill practice before real-world application
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.
Learn by doing
Engage hands-on with the tools and technologies you’re learning. You pick the skill, we provide the credentials and environment.
Follow your guide
All labs have detailed instructions and objectives, guiding you through the learning process and ensuring you understand every step.
Turn time into mastery
On average, you retain 75% more of your learning if you take time to practice. Hands-on labs set you up for success to make those skills stick.