Keepalived, HAProxy and varnish: Difference between revisions
Jump to navigation
Jump to search
Created page with "= Setting up Keepalived, HAProxy and Varnish = == Install & setup Keepalived == == Install & setup HAProxy == == Install & setup Varnish ==" |
No edit summary |
||
| Line 1: | Line 1: | ||
= Setting up Keepalived, HAProxy and Varnish = | = Setting up Keepalived, HAProxy and Varnish = | ||
Assuming debian install, but packages should exists for popular distroes as well | |||
== Install | == Install packages == | ||
<pre> | |||
aptitude install keepalived varnish haproxy | |||
</pre> | |||
== | == Setup keepalived == | ||
MASTER: | |||
Edit | |||
<code>/etc/keepalived/keepalived.conf</code> | |||
<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 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 | |||
} | |||
} | |||
</pre> | |||
SLAVE: | |||
== Setup HAProxy == | |||
MASTER: | |||
<pre> | |||
# 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 | |||
</pre> | |||
SLAVE: | |||
== Setup Varnish == | |||
MASTER & SLAVE are equal on both servers. | |||
Revision as of 15:27, 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:
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.