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'];
?>