Skip to main content

Loadbalancing mit keepalived

Hier eine einfach Config-Datei /etc/keepalived/keepalived.conf mit einem externen Interface eth0, auf das die virtuelle (secondary) IP 123.123.123.100 gelegt werden soll. Auf eth1 ist ein privates Netz konfiguriert, in dem die Realserver hängen. Es werden 2 virtuelle Server konfiguriert, einer für Port 80 HTTP und ein weiteres für Port 443 HTTPS Verbindungen:

global_defs {
   lvs_id meinLoadbalancer
}

vrrp_sync_group G1 {
  group {
        VI_1
  }
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass ganzSicheresPasswort
    }
    virtual_ipaddress {
      123.123.123.100
    }
}

virtual_server 123.123.123.100 80 {
    delay_loop 6
    lb_algo wlc
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 192.168.1.20 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.1.21 80 {
        weight 1
        HTTP_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

virtual_server 123.123.123.100 443 { 
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    persistence_timeout 50
    protocol TCP

    real_server 192.168.1.20 443 {
        weight 1
        SSL_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.1.21 443 {
        weight 1
        SSL_GET {
            url {
              path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}