Load balanced High-Availability Apache Cluster
Load balancers takes care of the load on a web server nodes and tried to direct request to the node with least amount on load Many web applications make use of sessions, and if you are in a session on Apache node 1, you would lose that session if suddenly node 2 served your requests. If an Apache nodes goes down, the load balancer realizes that and directs all incoming requests to the remaining node. Advantage Of Load Balancing
Four nodes( two apache nodes and two load balancer nodes) Five IP Addresses One for each node One for virtual IP address that will be shared by the load balancer. Requirements For Setup
Apache node 1: webserver1.radford.edu (webserver1) - IP address: ; Apache document root: /var/www Apache node 2: webserver2.radford.edu (webserver2) - IP address: ; Apache document root: /var/www Load Balancer node 1: loadb1.radford.edu (loadb1) - IP address: Load Balancer node 2: loadb2.radford.edu (loadb2) - IP address: Virtual IP Address: (used for incoming requests) IP Address Schema
Loadb1 / Loadb2 echo ip_vs_dh >> /etc/modules echo ip_vs_ftp >> /etc/modules echo ip_vs >> /etc/modules echo ip_vs_lblc >> /etc/modules echo ip_vs_lblcr >> /etc/modules echo ip_vs_lc >> /etc/modules echo ip_vs_nq >> /etc/modules echo ip_vs_rr >> /etc/modules echo ip_vs_sed >> /etc/modules echo ip_vs_sh >> /etc/modules echo ip_vs_wlc >> /etc/modules echo ip_vs_wrr >> /etc/modules Enable IPVS On The Load Balancers
modprobe ip_vs_dh modprobe ip_vs_ftp modprobe ip_vs modprobe ip_vs_lblc modprobe ip_vs_lblcr modprobe ip_vs_lc modprobe ip_vs_nq modprobe ip_vs_rr modprobe ip_vs_sed modprobe ip_vs_sh modprobe ip_vs_wlc modprobe ip_vs_wrr
vi /etc/apt/sources.list Lines must be added deb sarge main deb-src sarge main apt-get update apt-get install ultramonkey Install Ultra Monkey On The Load Balancers
Do you want to automatically load IPVS rules on boot? <-- No Select a daemon method. <-- none UltraMonkey Setup
vi /etc/sysctl.conf Add the following lines to sysct1.conf file Net.ipv4.ip_forward = 1 sysctl -p Enable Packet Forwarding On Load Balancers
vi /etc/ha.d/ha.cf Add to config file logfacility local0 bcast eth0 # Linux mcast eth auto_failback off node loadb1 node loadb2 respawn hacluster /usr/lib/heartbeat/ipfail apiauth ipfail gid=haclient uid=hacluster Configure heartbeat And Idirectord
uname -n vi /etc/ha.d/haresources loadb1 \ ldirectord::ldirectord.cf \ LVSSyncDaemonSwap::master \ IPaddr2:: /24/eth0/
uname –n vi /etc/ha.d/authkeys auth 3 3 md5 somerandomstring chmod 600 /etc/ha.d/authkeys
vi /etc/ha.d/ldirectord.cf checktimeout=10 checkinterval=2 autoreload=no logfile="local0" quiescent=yes virtual= :80 real= :80 gate real= :80 gate fallback= :80 gate service=http request="ldirector.html" receive="Test Page" scheduler=rr protocol=tcp checktype=negotiate
update-rc.d heartbeat start stop update-rc.d -f ldirectord remove /etc/init.d/ldirectord stop /etc/init.d/heartbeat start