How to Setting Up Keepalived and Nginx on Debian
Install Keepalived
1.Install Required Packages
sudo apt-get update
sudo apt-get install linux-headers-$(uname -r)
2.Install Keepalived
sudo apt-get install keepalived
Setup Keepalived
3.Now create or edit Keepalived configuration /etc/keepalived/keepalived.conf
file on Node1
! Configuration File for keepalived
global_defs {
}
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight 50
}
vrrp_instance VI_1 {
state MASTER
interface ens192
virtual_router_id 50
priority 120
advert_int 1
virtual_ipaddress {
192.168.69.200/24
}
track_script {
check_nginx
}
}
4.Now create or edit Keepalived configuration /etc/keepalived/keepalived.conf
file on Node2
! Configuration File for keepalived
global_defs {
}
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight 50
}
vrrp_instance VI_1 {
state BACKUP
interface ens192
virtual_router_id 50
priority 110
advert_int 1
virtual_ipaddress {
192.168.69.200/24
}
track_script {
check_nginx
}
}
5.Now create or edit Keepalived configuration /etc/keepalived/keepalived.conf
file on Node3
! Configuration File for keepalived
global_defs {
}
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight 50
}
vrrp_instance VI_1 {
state BACKUP
interface ens192
virtual_router_id 50
priority 100
advert_int 1
virtual_ipaddress {
192.168.69.200/24
}
track_script {
check_nginx
}
}
6.Create or edit check_nginx script /etc/keepalived/check_nginx.sh
file on each of the 3 nodes
#!/bin/sh
if [ -z "`/bin/pidof nginx`" ]; then
/sbin/ip addr del 192.168.69.200/24 dev ens192
exit 1
fi
Firewall Settings
7.Edit nftables configurations /etc/nftables.conf
to allow VRRP. Add the following content to the input chain
ip protocol vrrp accept
8.Reload nftables
systemctl reload nftables.service