Merhabalar, sunucunuzun internet hızı çok yüksek ( 1 Gbit ya da devasa 10Gbit ) olsa da belli bir client sayısı ile sınırlı malesef. Bu yüzden var olan sayfamızı host ederken tek bir sunucu yetmiyebiliyor. Aynı anda 30.000 kişinin girdiği dinamik bir sayfayı apache ile ayakta tutabilmek çok büyük başarı ( apache 2.4 ve php 5.6 ) Bu yüzden Nginx ile bunları sağlayabilirsiniz.
Öncelikle 1 tane sunucumuzu hem load balancer hem de s1 olarak belirliyoruz.
Diğer 2 sunucumuz s2 ve s3 olsun. s4 s5 diye çoğaltabiliriz.
Domain adımız emrekaratasoglu.com olsun
diğerleri de sırasıyla ( subdomainler )
s1.emrekaratasoglu.com
s2.emrekaratasoglu.com
s3.emrekaratasoglu.com
olsun.
Öncelikle bir adet emrekaratasoglu.com için conf oluşturuyoruz. bunlar vhost olarak geçiyor.
server {
listen 80;
server_name emrekaratasoglu.com;
location / {
proxy_pass http://myapp1;
}
Gördüğünüz gibi bu sayfaya gelen herşey myapp1’e gidicek. Bir de myapp1 tanımlamamız gerek
S1 ve emrekaratasoglu aynı sunucu düşündüğümüz için s1’i de 8080’den dinletelim
s1 conf
server {
listen 8080;
server_name s1.emrekatatasoglu.com:8080 www.s1.emrekatatasoglu.com:8080;
}
s2.conf
server {
listen 80
server_name s2.emrekatatasoglu.com
}
s3.conf
server {
listen 80
server_name s2.emrekatatasoglu.com
}
Artık emrekaratasoglu.com conf dosyamız
upstream myapp1 {
server s1.emrekatatasoglu.com:8080;
server s2.emrekatatasoglu.com weight=4;
server s3.emrekaratasoglu.com weight=4;
}
server {
server_name www.emrekaratasoglu.com;
return 301 http://emrekaratasoglu.com$request_uri;
}
server {
listen 80;
server_name emrekaratasoglu.com;
}
location / {
proxy_pass http://myapp1;
}
Bu şekle döndü . Alternatif olarak 302 redirect kullanılabilir.
Bu ne işimize yaradı,
herhangi bir kullanıcı sisteme geldiğinde %40 s3 ‘e %40 s2’ye %20 s1 ‘e gelecek ve yaptığım test sonucu
10 Gbit lik sunucuda yük testi yaptığımda 10k’yı göremezken
aynı sunucuya sanallaştırmayla 4 server kurup load balance conf yaptığımda 10k’yı geçmekte.