Ubuntu Sunucusunda Nginx Yük Dengeleme Nasıl Kurulur
Nginx Yük Dengeleme Nedir?
Nginx Yük dengeleme, ücretsiz, açık kaynaklı ve web sunucuları , önbellekleme , ters proxy oluşturma , posta proxy’si ve yük dengeleme için kullanılan en popüler yazılımlardan biridir . Nginx binlerce eşzamanlı bağlantıyı yönetebilir. Ancak web sitenizin kullanıcı sayısı ve trafiği hızla arttığında web sitenizin önüne bir yük dengeleyici uygulamanız gerekecektir.
Yük Dengeleme, uygulamanızı ölçeklendirmek ve performansını ve yedekliliğini artırmak istediğinizde kullanılır. Nginx, sunucunun kullanılabilirliğini ve verimliliğini artırmaya çalışan en sağlam ve popüler yük dengeleyicidir. Nginx, birden fazla ayrı sunucuda çalışan dağıtılmış bir web uygulamasına tek bir giriş noktası görevi görür.
Nginx Yük dengeleme, talebin gerektirdiği şekilde sunucu eklemenize veya kaldırmanıza olanak tanır. Nginx yük dengeleyici, gelen ağ trafiğini ve iş yükünü ayrı uygulama sunucusu gruplarına dağıtır. Bu durumların her birinde, seçilen sunucudan gelen yanıtı doğru istemciye döndürür.
Nginx Yük Dengeleme Yöntemleri
- Round robin : Bu yöntemde istek, roundrobin yöntemiyle dağıtılır. Dağıtım için herhangi bir yöntem belirtilmediğinde otomatik olarak kullanılır.
- Ip hash : İstemcilerin IP adresine göre bir sonraki istekte kullanılacak sunucuyu tanımlamak için hash fonksiyonlarının kullanıldığı bir yöntemdir. Bu yöntemin yardımıyla oturumun kalıcılığını tercih edebilirsiniz.
- En Az Bağlantılı : Bu yöntemi kullanarak, gelecek isteği çok meşgul olmayan, yani az sayıda aktif bağlantısı olan sunucuya atayabilirsiniz.
Nginx Yük Dengeleyici Ortam Kurulumu
HOST | IP ADRESİ |
Nginx Load Balancer | 192.168.0.10 |
First Application Server | 192.168.0.11 |
Second Application Server | 192.168.0.12 |
Bu yazımızda Ubuntu sunucusunda Nginx’in Yük Dengeleyici olarak nasıl kurulacağını açıklayacağız.
Yük Dengeleyici Ana Bilgisayarına Nginx’i yükleyin
Öncelikle Nginx sunucusunu Load Balancer ana bilgisayarına kurmanız gerekecektir. Aşağıdaki komutu çalıştırarak yükleyebilirsiniz:
apt-get install nginx -y
Nginx kurulduktan sonra Nginx hizmetini başlatın ve sistem yeniden başlatıldığında başlamasını sağlayın:
systemctl start nginx
systemctl enable nginx
Artık aşağıdaki komutu kullanarak Nginx hizmetinin durumunu doğrulayabilirsiniz:
systemctl status nginx
Her şey yolundaysa aşağıdaki çıktıyı alacaksınız:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-10-11 19:22:31 UTC; 26s ago
Docs: man:nginx(8)
Process: 62622 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 62623 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 62716 (nginx)
Tasks: 2 (limit: 1041)
Memory: 3.9M
CGroup: /system.slice/nginx.service
├─62716 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─62719 nginx: worker process
Oct 11 19:22:31 ubuntu systemd[1]: Starting A high performance web server and a reverse proxy server...
Oct 11 19:22:31 ubuntu systemd[1]: Started A high performance web server and a reverse proxy server.
Nginx web sunucusu varsayılan olarak 80 numaralı bağlantı noktasını dinler . Aşağıdaki komutu çalıştırarak kontrol edebilirsiniz:
ss -antpl
Aşağıdaki çıktıda Nginx bağlantı noktası 80’i görmelisiniz :
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=62719,fd=6),("nginx",pid=62716,fd=6))
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=62850,fd=13))
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=62835,fd=3))
LISTEN 0 511 [::]:80 [::]:* users:(("nginx",pid=62719,fd=7),("nginx",pid=62716,fd=7))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=62835,fd=4))
Şimdi web tarayıcınızı açın ve http://192.168.0.10 URL’sini kullanarak Nginx test sayfasını doğrulayın . Aşağıdaki ekranda Nginx test sayfasını görmelisiniz:
Bu noktada Nginx web sunucunuz kurulu ve çalışıyor. Artık bir sonraki adıma geçebilirsiniz.
Nginx’i Yük Dengeleyici olarak yapılandırma
Daha sonra yük dengeleme kurulumu için bir Nginx sanal ana bilgisayar yapılandırma dosyası oluşturmanız gerekecektir. Nginx yük dengelemeyi üç yöntemi kullanarak ayarlayabilirsiniz.
1. Round Robin Yöntemini Kullanarak Nginx’i Kurun
Yük dengeleyiciyi uygulamak için bir Nginx sanal ana bilgisayar yapılandırma dosyası oluşturmanız gerekecektir. Aşağıdaki komutla oluşturabilirsiniz:
nano /etc/nginx/conf.d/loadbalancer.conf
Round robin yöntemi için aşağıdaki yapılandırmayı ekleyin:
upstream backend {
server 192.168.0.11;
server 192.168.0.12;
}
server {
listen 80;
server_name 192.168.0.10;
location / {
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://backend;
}
}
Burada: 192.168.0.10, yük dengeleyicinin IP adresidir, 192.168.0.11 , birinci arka uç sunucusunun IP adresidir ve 192.168.0.12 , ikinci arka uç sunucusunun IP adresidir.
İşiniz bittiğinde dosyayı kaydedip kapatın, ardından değişiklikleri uygulamak için Nginx hizmetini yeniden başlatın:
systemctl restart nginx
Bu yöntemde istek, çevrimsel olarak dağıtılır.
2. IP Hash Yöntemini Kullanarak Nginx Kurulumu
Bu bölümde Ip hash yöntemini kullanarak Nginx yük dengeleme kurulumunu yapacağız. Bu yöntem, benzersiz bir karma anahtar oluşturmak için istemcinin ve sunucunun kaynak ve hedef IP adreslerini alan bir algoritma kullanır. Bu anahtar istemciyi belirli bir sunucuya atamak için kullanılır.
Öncelikle aşağıdaki komutla bir Nginx sanal ana bilgisayar yapılandırma dosyası oluşturun:
nano /etc/nginx/conf.d/loadbalancer.conf
Aşağıdaki yapılandırmayı ekleyin:
upstream backend {
ip_hash;
server 192.168.0.11;
server 192.168.0.12;
}
server {
listen 80;
server_name 192.168.0.10;
location / {
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://backend;
}
}
İşiniz bittiğinde dosyayı kaydedip kapatın, ardından değişiklikleri uygulamak için Nginx hizmetini yeniden başlatın:
systemctl restart nginx
3. En Az Bağlantılı Yöntemi Kullanarak Nginx’i Kurun
Bu bölümde Least Connected yöntemini kullanarak Nginx yük dengeleme kurulumunu yapacağız. Bu yöntem, istekleri o anda en az etkin bağlantıya sahip sunucuya yönlendirir. Öncelikle aşağıdaki komutla bir Nginx sanal ana bilgisayar yapılandırma dosyası oluşturun:
nano /etc/nginx/conf.d/loadbalancer.conf
Aşağıdaki yapılandırmayı ekleyin:
upstream backend {
least_conn;
server 192.168.0.11;
server 192.168.0.12;
}
server {
listen 80;
server_name 192.168.0.10;
location / {
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://backend;
}
}
İşiniz bittiğinde dosyayı kaydedip kapatın, ardından değişiklikleri uygulamak için Nginx hizmetini yeniden başlatın:
systemctl restart nginx
Nginx Web Sunucularını Test Edin
Üç yöntemden birini kullanarak Nginx yük dengelemeyi kurduktan sonra. Nginx yük dengelemenin çalışıp çalışmadığını kontrol etmeniz gerekecek.
Test etmek için web tarayıcınızı açın ve http://192.168.0.10 URL’sini kullanarak uygulama sunucunuza erişin İlk uygulama sunucunuzun sayfasını görmelisiniz
Şimdi sayfayı sürekli yenileyin. Bir süre sonra uygulama ikinci sunucudan yüklenmeli ve ikinci uygulama sunucunuzun sayfasını görmelisiniz: