If your web server setup melts under traffic like a popsicle at a barbecue you need a load balancer. This guide shows how to use Apache with mod_proxy and mod_proxy_balancer to distribute HTTP requests across multiple backends. It is a Linux friendly tutorial that keeps things real and keeps your users from seeing 502 errors at midnight.
On each backend install a light web service and confirm it responds with curl or a browser. Use different ports or hostnames so you can prove traffic actually moves around. Example test command on each backend
curl -sS http://backend1.example.com:8080/health
If that returns status or HTML you are good to go. If not then fix the app before you try to balance traffic. This step is faster than drama.
Run the a2enmod command to turn on the proxy and balancer pieces. On Debian or Ubuntu do this with sudo and then restart Apache to apply the change.
sudo a2enmod proxy proxy_balancer proxy_http lbmethod_byrequests
sudo systemctl restart apache2
That enables mod_proxy and mod_proxy_balancer plus the HTTP proxy and a simple load method. No magic required just a bit of patience and sudo.
Edit a virtual host file on the Apache front end and define a named balancer. The named block groups your backend members and controls how requests are distributed. A minimal example looks like this
<VirtualHost *:80>
ServerName lb.example.com
ProxyPreserveHost On
<Proxy "balancer://mycluster">
BalancerMember "http://backend1.example.com:8080"
BalancerMember "http://backend2.example.com:8080"
ProxySet lbmethod=byrequests
</Proxy>
ProxyPass "/app" "balancer://mycluster"
ProxyPassReverse "/app" "balancer://mycluster"
<Location "/balancer-manager">
SetHandler balancer-manager
Require ip 10.0.0.0/8
</Location>
</VirtualHost>
ProxyPass and ProxyPassReverse map a public path to the named cluster and keep redirects and headers behaving as expected. Use ProxySet to control the lbmethod and other tuning options if needed.
The balancer manager is a web UI that lets you yank backends in and out at runtime. That is useful and dangerous. Restrict access by network or basic auth so the whole internet does not get to press the big red button.
Send requests to the public virtual host and watch backends rotate traffic. Use curl in a loop and tail backend logs. If you want a visual trick log a header that shows which backend handled the request.
for i in 1 2 3 4 5; do curl -sS http://lb.example.com/app/ | head -n1; sleep 1; done
Enable status pages and health checks for more visibility. Monitor backend response times and error rates. Real monitoring saves you from guessing when things go wrong.
In short prepare backends, enable mod_proxy and mod_proxy_balancer, create a balancer block and ProxyPass routes, secure the balancer manager, then validate with tests and monitoring. For higher availability consider adding SSL, sticky sessions only when you must, and an external health checker or orchestration tool.
Follow these steps and your Apache load balancer will behave more like a team player and less like a fallen tent in a windstorm.
I know how you can get Azure Certified, Google Cloud Certified and AWS Certified. It's a cool certification exam simulator site called certificationexams.pro. Check it out, and tell them Cameron sent ya!
This is a dedicated watch page for a single video.