19 Mart 2014 Çarşamba

Mysql database cluster and Nginx web server high availability and scalability part 3

Wordpress high availability and scalability part 3

Haproxy kurulumu;
Haproxy Debian wheezy reposunda bulunmamakta kurmak için backport reposunu ekliyoruz.
#vi /etc/apt/source.list
deb http://mirror.vorboss.net/debian/ wheezy-backports main
deb-src http://mirror.vorboss.net/debian/ wheezy-backports main
#apt-get update
#apt-get install haproxy
#nano /etc/default/haproxy
ENABLED=1
#mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
#vi /etc/haproxy/haproxy.cfg
global
    log 127.0.0.1 local0 notice
    maxconn 2000
    user haproxy
    group haproxy

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    retries 3
    option redispatch
    timeout connect  5000
    timeout client  10000
    timeout server  10000
listen appname 0.0.0.0:80
    mode http
    stats enable
    stats uri /haproxy?stats
    stats realm Strictly\ Private
    stats auth admin:P123456!
    balance roundrobin
    option httpclose
    option forwardfor
    server Nginx1 10.1.26.40:80 check
    server Nginx2 10.1.26.41:80 check

#service haproxy start
Keepalived kurulumu;
Kurulumun bu aşamasın da LB0 ve LB1 sanal bir interface ile birbirine bağlıyacağız , bu sanal interface dışarıdan gelen isteklere cevap verecek ve LBlardan herhangi biri down olsa dahi sistem çalışmaya devam edecek.
Her iki LB da yapacağımız
#apt-get install keepalived
#vi /etc/keepalived/keepalived.conf
LB1
vrrp_instance VI_1 {
interface eth0
state ASIL
virtual_router_id 10
priority 101   # 101 on asil, 100 on yedek
virtual_ipaddress {
10.1.26.45 #Sanal-ip-adres
}
}

LB2
vrrp_instance VI_1 {
interface eth0
state YEDEK
virtual_router_id 10
priority 100   # 101 on asil, 100 on yedek
virtual_ipaddress {
10.1.26.45 #Sanal-ip-adres
}
}
Her 2 LBda servisleri başlatıyoruz.
#service keepalived start
Asıl olanda aşağıdaki komutu çalıştırdığınız da ;
#ip addr Show eth0
Alacağınız çıktı;
Eth0:  mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:0c:29:6f:ed:60 brd ff:ff:ff:ff:ff:ff
    inet 10.1.26.43/24 brd 192.168.1.255 scope global eth0
    inet 10.1.26.45/32 scope global eth0
    inet6 fe80::20c:29ff:fe6f:ed60/64 scope link
       valid_lft forever preferred_lft forever
Domain adımızı public ipmize ,firewall tarafında ise sanal interface adresine yönlendirdiğimizde wordpress’in kurulum ekranı karşımıza çıkıyor.
Eğer sistemin çalışıp çalışmadığını test etmek istiyorsanız, aşağıdaki php kodu ile test edebilirsiniz veya http://haproxy-ipadres/haproxy?stats;  yazdığınızda kullanıcı adı ve parolayı girerek haproxy durumunu grafik ekrandan izleyebilirsiniz.
<?php         
header('Content-Type: text/plain');
echo "Server IP: ".$_SERVER['SERVER_ADDR'];
echo "\nClient IP: ".$_SERVER['REMOTE_ADDR'];
echo "\nX-Forwarded-for: ".$_SERVER['HTTP_X_FORWARDED_FOR'];
?>

Hiç yorum yok:

Yorum Gönder