Keepalived, HAProxy and varnish: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 56: | Line 56: | ||
SLAVE: | SLAVE: | ||
<pre> | |||
vrrp_script chk_haproxy { # Requires keepalived-1.1.13 | |||
script "killall -0 haproxy" # cheaper than pidof | |||
interval 2 # check every 2 seconds | |||
weight 2 # add 2 points of prio if OK | |||
} | |||
vrrp_script chk_nginx { # Requires keepalived-1.1.13 | |||
script "killall -0 nginx" # cheaper than pidof | |||
interval 2 # check every 2 seconds | |||
weight 2 # add 2 points of prio if OK | |||
} | |||
vrrp_instance VI_1 { | |||
interface eth0 | |||
state BACKUP | |||
virtual_router_id 152 | |||
priority 100 # 101 on master, 100 on backup | |||
virtual_ipaddress { | |||
172.30.1.248 | |||
} | |||
track_script { | |||
chk_haproxy | |||
} | |||
} | |||
vrrp_instance VI_2 { | |||
interface eth0 | |||
state BACKUP | |||
virtual_router_id 162 | |||
priority 100 # 101 on master, 100 on backup | |||
virtual_ipaddress { | |||
172.30.1.247 | |||
} | |||
track_script { | |||
chk_nginx | |||
} | |||
} | |||
</pre> | |||
== Setup HAProxy == | == Setup HAProxy == | ||
Revision as of 16:46, 5 September 2012
Setting up Keepalived, HAProxy and Varnish
Assuming debian install, but packages should exists for popular distroes as well
Install packages
aptitude install keepalived varnish haproxy
Setup keepalived
MASTER: Edit
/etc/keepalived/keepalived.conf
vrrp_script chk_haproxy { # Requires keepalived-1.1.13
script "killall -0 haproxy" # cheaper than pidof
interval 2 # check every 2 seconds
weight 2 # add 2 points of prio if OK
}
vrrp_script chk_nginx { # Requires keepalived-1.1.13
script "killall -0 nginx" # cheaper than pidof
interval 2 # check every 2 seconds
weight 2 # add 2 points of prio if OK
}
vrrp_instance VI_1 {
interface eth0
state MASTER
virtual_router_id 152
priority 101 # 101 on master, 100 on backup
virtual_ipaddress {
172.30.1.248
}
track_script {
chk_haproxy
}
}
vrrp_instance VI_2 {
interface eth0
state MASTER
virtual_router_id 162
priority 101 # 101 on master, 100 on backup
virtual_ipaddress {
172.30.1.247
}
track_script {
chk_nginx
}
}
SLAVE:
vrrp_script chk_haproxy { # Requires keepalived-1.1.13
script "killall -0 haproxy" # cheaper than pidof
interval 2 # check every 2 seconds
weight 2 # add 2 points of prio if OK
}
vrrp_script chk_nginx { # Requires keepalived-1.1.13
script "killall -0 nginx" # cheaper than pidof
interval 2 # check every 2 seconds
weight 2 # add 2 points of prio if OK
}
vrrp_instance VI_1 {
interface eth0
state BACKUP
virtual_router_id 152
priority 100 # 101 on master, 100 on backup
virtual_ipaddress {
172.30.1.248
}
track_script {
chk_haproxy
}
}
vrrp_instance VI_2 {
interface eth0
state BACKUP
virtual_router_id 162
priority 100 # 101 on master, 100 on backup
virtual_ipaddress {
172.30.1.247
}
track_script {
chk_nginx
}
}
Setup HAProxy
MASTER:
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 8196
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 20000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen varnish_farm 172.30.1.248:80
mode http
cookie SERVERID insert indirect nocache
balance roundrobin
option http-server-close
option forwardfor
stats enable
stats auth admin:Toklon
server varnish1 172.30.1.23:80 cookie varnish11 check
server varnish2 172.30.1.75:80 cookie varnish12 check
SLAVE:
Setup Varnish
MASTER & SLAVE are equal on both servers.