Linux Apps
Now Reading
How to Configure Load Balancer with Pound in Ubuntu
0

How to Configure Load Balancer with Pound in Ubuntu

To Configure Load Balance with Pound in Ubuntu

Pound is an open source lightweight software for reverse proxy and load balancing solution. As a reverse-proxy load balancing server, it allows the requests from the HTTP/HTTPS clients and distributes them to more than one Web servers. This article explains the configuration of Load balancer with Pound in Ubuntu

Testing Environment

IP Address Hostname
Pound Load Balancer 192.168.5.145 node1.example.com
Apache Webserver 1 192.168.5.146 node2.example.com
Apache Webserver 2 192.168.5.147 node3.example.com

Pre-requisties

Provide hostname resolution between the three machines either configure DNS server or create entry in /etc/hosts file.

192.168.5.145 node1.example.com node1
192.168.5.146 node2.example.com node2
192.168.5.147 node3.example.com node3

Note: Install Apache package on both of the web servers and configure basic Apache webserver with simple index.html file.

Installation of Pound package

First install the pound package on load balancer machine (node 1).

root@node1:~# apt-get install pound -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  pound
0 upgraded, 1 newly installed, 0 to remove and 435 not upgraded.
.
.
.

Preparing to unpack .../pound_2.6-6.1_amd64.deb ...
Unpacking pound (2.6-6.1) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Setting up pound (2.6-6.1) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...

Create a new configuration file for pound and edit it as follows,

root@node1:~# mv /etc/pound/pound.cfg /etc/pound/pound.cfg.backup
root@node1:~# vim /etc/pound/pound.cfg

Entry:

User "www-data"
Group "www-data"
# log level (max: 5)
LogLevel 3
# specify LogFacility
LogFacility local1
# interval of heartbeat - seconds
Alive 30
Control "/var/run/pound/poundctl.socket"

# define frontend
ListenHTTP
    Address 0.0.0.0
    Port 80
End

# define backend
Service
    BackEnd
        Address  192.168.5.146
        Port     80
        Priority 5
    End

    BackEnd
        Address  192.168.5.147
        Port     80
        Priority 5
    End
End

Once the pound is configured, start and enable its service.

root@node1:~# sed -i -e "s/^startup=0/startup=1/" /etc/default/pound 
root@node1:~# systemctl start pound 

In addition, you need to configure rsyslog for pound.

root@node1:~# vi /etc/rsyslog.d/50-default.conf
Entry:
#in line 9 change the entry as shown like below and add new line content on line 10
*.*;auth,authpriv.none;local1.none              -/var/log/syslog     
local1.*                        /var/log/pound.log 

Restart rsyslog service to take effect.

root@node1:~# systemctl restart rsyslog

Now its time to check the load balancer between the webserver nodes from web browser. Open the web browser with the IP address of the pound server.

Note: For each and every request will be redirected to the different webservers.

snap-1

snap-2

Thank you! for using Linux Help.

You find this tutorial helpful? Share with your friends to keep it alive.

For more help topics, browse our website www.linuxhelp.com

Be the first to comment, we value your suggestions. For further queries please comment below.

Leave a Response