Linux

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

  1. 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.
  2. 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.
  3. 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

HOSTIP ADRESİ
Nginx Load Balancer192.168.0.10
First Application Server192.168.0.11
Second Application Server192.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:

Muhammed Kerim Koç

1996 yılında Giresun Şebinkarahisarda dünyaya geldim. İlk ve orta öğretimi Şebinkarahisarda tamamladım. Liseyi Şebinkarahisar Anadolu Teknik ve Endüstri Meslek Lisesinde bitirdim. Üniversite için de Şebinkarahisar Teknik Bilimler Meslek Yüksek Okulunda Bilgisayar programcılığını okudum. Üniversite stajı için gelmiş olduğum özel bir firmada işe başladım. 5,5 yıl bu firmadan çalıştıktan sonra farklı bir sektör olan inşaat sektöründe Bilgi teknolojileri Uzmanı olarak 8 ay çalıştım. Daha sonra özel bir şirkette Sistem Network Sorumlusu olarak 4 ay çalıştıktan sonra proje sonlandırılmasından dolayı işten ayrıldım. Tekrar dan 5.5 yıl çalışmış olduğum firmaya Sistem ve Network Yöneticisi olarak geri döndüm ve çalışmaya başladım. Kendimi geliştirmek için Bilge Adam Akademi den Sistem Uzmanlığı eğitimi aldım. Sanallaştırma ve Ağ tarafında kendimi sürekli olarak geliştiriyorum.

İlgili Makaleler

Başa dön tuşu