AlmaLinuxLinuxTutorials

How To Install HAProxy on AlmaLinux 8

Install HAProxy on AlmaLinux 8

In this tutorial, we will show you how to install HAProxy on AlmaLinux 8. For those of you who didn’t know, HAProxy is one of the most popular open-source load balancing software, which also offers high availability and proxy functionality. It is particularly suited for very high-traffic websites and powers quite a number of the world’s most visited ones.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you the step-by-step installation of the HAProxy high-performance TCP/HTTP load balancer on AlmaLinux 8. You can follow the same instructions for Rocky Linux.

Prerequisites

  • A server running one of the following operating systems: AlmaLinux 8.
  • It’s recommended that you use a fresh OS install to prevent any potential issues.
  • SSH access to the server (or just open Terminal if you’re on a desktop).
  • A non-root sudo user or access to the root user. We recommend acting as a non-root sudo user, however, as you can harm your system if you’re not careful when acting as the root.

Network Details.

Below is our network server. There are 2 web servers running with Apache2 and listening on port 80 and one HAProxy server:

Web Server Details:
  Server 1:    server1.idroot.us     192.168.77.20
  Server 2:    server2.idroot.us     192.168.77.21
HAProxy Server: 
  HAProxy:     haproxy               192.168.77.8

Install HAProxy on AlmaLinux 8

Step 1. First, let’s start by ensuring your system is up-to-date.

sudo dnf update
sudo dnf install epel-release

Step 2. Installing HAProxy on AlmaLinux 8.

HAProxy is available in the default  AlmaLinux 8 repositories. Now run the following command below to install it:

sudo dnf install haproxy

After the HAProxy is installed, now start the HAProxy service and enable it to start at system reboot:

sudo systemctl start haproxy
sudo systemctl enable haproxy

Step 3. Configure HAProxy.

HAProxy has a default path for the configuration file at /etc/haproxy/haproxy.cfg .Now modify two sections frontend and backend. In the Frontend section, you will need to define HAProxy IP its port, stats URI and backend name. In the Backend section, you will need to define the load balance algorithm, backend server’s name, IPs, and port:

nano /etc/haproxy/haproxy.cfg

Modify the following lines:

frontend http_balancer
    bind 192.168.77.8:80
    option http-server-close
    option forwardfor
    stats uri /haproxy?stats

default_backend     Apache_webservers

backend apache_webservers
    mode        http
    balance     roundrobin
    option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost    
    server  apache1  192.168.77.20:80  check
    server  apache2  192.168.77.21:80  check

Save and close also edit /etc/rsyslog.conf file:

nano /etc/rsyslog.conf

Uncomment the following lines:

module(load="imudp")
input(type="imudp" port="514")

Save and close the file. After that create haproxy.conf file for rsyslog with the following command:

nano /etc/rsyslog.d/haproxy.conf

Add the following lines:

local2.=info     /var/log/haproxy-access.log
local2.notice    /var/log/haproxy-info.log

Then, start the rsyslog service and enable it to start at system reboot:

sudo systemctl start rsyslog
sudo systemctl enable rsyslog

Once you have configured HAProxy, its time to restart the service:

sudo systemctl restart haproxy

Step 4. Configure Firewall.

We will add the HAProxy to the AlmaLinux 8 firewall and update the rules with the following commands:

sudo firewall-cmd --add-port=8088/tcp --permanent
sudo firewall-cmd --reload

Step 5. Configure Backend Servers.

Now we install the Apache server on both backend servers:

sudo apt install httpd

Once the Apache server has been installed, start the Apache service and enable it to start at system reboot:

sudo systemctl start httpd
sudo systemctl enable httpd

Then, modify the default index.html file on both backend servers:

nano /usr/share/httpd/noindex/index.html

Remove all lines and add the following line:

Welcome Apache Web Server 1

On the second backend, edit the index.html file with the following command below:

nano /usr/share/httpd/noindex/index.html

Remove all lines and add the following line:

Welcome Apache Web Server 2

Finally, HAProxy is configured to forward all incoming requests to the backend servers based on the load-balancing algorithm. Now, it’s time to check whether HAProxy is working properly or not. Open your web browser and type the HAProxy IP in the URL http://192.168.77.8. You should see your first Apache Web Server 1, and Next, refresh the same page again, you should see your Apache Web Server 2.

Congratulations! You have successfully installed HAProxy. Thanks for using this tutorial for installing the HAProxy high-performance TCP/HTTP load balancer on your AlmaLinux 8 system. For additional help or useful information, we recommend you check the official HAProxy website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button