Yadda ake Amfani da Nginx azaman HTTP Load Balancer a cikin Linux


Idan ya zo ga kafa sabobin aikace-aikace masu yawa don sakewa, daidaita nauyi hanya ce da aka saba amfani da ita don rarraba buƙatun sabis masu shigowa yadda yakamata ko zirga-zirgar hanyar sadarwa a ƙetaren rukunin sabobin baya.

Daidaita Load yana da fa'idodi da yawa gami da ƙarin wadatar aikace-aikacen ta hanyar sakewa, ƙara aminci da haɓaka (ana iya ƙara ƙarin sabobin a cikin mahaɗin lokacin da zirga-zirga ya ƙaru). Hakanan yana kawo ingantaccen aikin aikace-aikace da sauran fa'idodi da yawa.

Shawarar Karanta: Babban Jagora don Tabbatarwa, enarfafawa da Inganta Ayyuka na Nginx Web Server

Nginx za a iya tura shi azaman ingantaccen ma'aunin ɗaukar nauyi na HTTP don rarraba zirga-zirgar hanyoyin sadarwar da ke shigowa da ɗaukar aiki tsakanin rukunin sabobin aikace-aikace, a kowane yanayi yana mayar da martani daga uwar garken da aka zaɓa ga abokin ciniki mai dacewa.

Hanyoyin daidaita kayan da Nginx ke tallafawa sune:

  • zagaye-robin - wanda ke rarraba buƙatu zuwa sabobin aikace-aikace a cikin zagaye-robin fashion. Ana amfani da shi ta tsohuwa lokacin da ba a ayyana hanya ba,
  • an haɗa-mafi ƙanƙanci - an ba da buƙatu na gaba zuwa sabar da ba ta da aiki sosai (uwar garken tare da mafi ƙarancin haɗin aiki),
  • ip-hash - inda ake amfani da aikin zanta don ƙayyade abin da ya kamata a zaɓa sabar don buƙata ta gaba dangane da adireshin IP na abokin ciniki. Wannan hanya tana ba da damar dagewa (ƙulla abokin harka zuwa wani sabar aikace-aikace).

Bayan haka, zaku iya amfani da ma'aunan uwar garken don tasiri tasirin Nginx na daidaita algorithms a matakin da ya fi ci gaba. Nginx kuma yana goyan bayan binciken lafiya don yiwa uwar garken alamar rashin nasara (don wani lokaci mai daidaitawa, tsoho shine sakan 10) idan amsarta ta gaza tare da kuskure, don haka ya guji ɗaukar sabar don buƙatun shigowa masu zuwa na wani lokaci.

Wannan jagorar mai amfani yana nuna yadda ake amfani da Nginx azaman mai ɗaukar nauyin HTTP don rarraba buƙatun abokin ciniki masu shigowa tsakanin sabobin biyu kowannensu yana da misalin aikace-aikace iri ɗaya.

Don dalilan gwaji, kowane misalin aikace-aikace ana masa alama (akan mai amfani da mai amfani) don nuna sabar da take aiki akanta.

Load Balancer: 192.168.58.7
Application server 1: 192.168.58.5
Application server 2: 192.168.58.8

A kan kowane sabar aikace-aikacen, ana daidaita kowane misalin aikace-aikacen don samun dama ta amfani da yankin tecmintapp.lan . Da zaton wannan yanki ne mai cikakken rijista, zamu ƙara waɗannan masu zuwa a cikin saitunan DNS.

A Record   		@   		192.168.58.7

Wannan rikodin yana gaya wa buƙatun abokin ciniki inda yankin yakamata ya nufa, a wannan yanayin, mai ɗaukar nauyi (192.168.58.7). Abubuwan DNS A suna karɓar ƙimar IPv4 kawai. Hakanan, ana iya amfani da fayil ɗin/sauransu/runduna akan injunan abokin ciniki don dalilan gwaji, tare da shigarwa mai zuwa.

192.168.58.7  	tecmintapp.lan

Kafa Nginx Load Daidaitawa a cikin Linux

Kafin kafa Nginx load balancing, dole ne ka shigar Nginx akan sabarka ta amfani da tsoffin manajan kunshin don rarrabarka kamar yadda aka nuna.

$ sudo apt install nginx   [On Debian/Ubuntu]
$ sudo yum install nginx   [On CentOS/RHEL]   

Na gaba, ƙirƙiri fayil ɗin sabar mai suna /etc/nginx/conf.d/loadbalancer.conf (ba sunan da kuka zaɓa).

$ sudo vi /etc/nginx/conf.d/loadbalancer.conf

Bayan haka sai a kwafa kuma liƙa wannan tsarin a ciki. Wannan daidaitaccen tsarin ba matsala zuwa zagaye-zagaye kamar yadda babu ma'anar hanyar daidaita kayan lodi.

 
upstream backend {
        server 192.168.58.5;
        server 192.168.58.8;
    }
	
    server {
        listen      80 default_server;
        listen      [::]:80 default_server;
        server_name tecmintapp.lan;

        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;
	}
}

A cikin daidaitawar da ke sama, umarnin proxy_pass (wanda ya kamata a bayyana shi a cikin wuri, / a wannan yanayin) ana amfani dashi don aika buƙata zuwa sabobin HTTP waɗanda aka ambata waɗanda aka ambata ta amfani da kalmar baya, a cikin umarnin da ke gaba (da ake amfani da shi don ayyana gungun sabobin). Hakanan, za a rarraba buƙatun tsakanin sabar ta amfani da madaidaicin tsarin daidaita-zagaya.

Don amfani da mafi ƙarancin haɗin haɗin, yi amfani da tsari mai zuwa

upstream backend {
        least_conn;
        server 192.168.58.5;
        server 192.168.58.8;
    }

Kuma don kunna ip_hash tsarin dagewa na zama, yi amfani da:

upstream backend {
	ip_hash;
        server 192.168.58.5;
        server 192.168.58.8;
    }

Hakanan zaka iya rinjayar yanke shawarar daidaita nauyi ta amfani da nauyin uwar garke. Amfani da tsari mai zuwa, idan buƙatu guda shida daga abokan ciniki, za a sanya uwar garken aikace-aikacen 192.168.58.5 buƙatun 4 kuma 2 za su tafi 192.168.58.8.

upstream backend {
        server 192.168.58.5	weight=4;
        server 192.168.58.8;
    }

Adana fayil ɗin kuma fita dashi. Don haka tabbatar da tsarin daidaitawar Nginx ya zama daidai bayan ƙara canje-canje na kwanan nan, ta hanyar bin umarnin nan mai zuwa.

$ sudo nginx -t

Idan daidaitawar ta yi kyau, sake farawa kuma kunna sabis na Nginx don amfani da canje-canje.

$ sudo systemctl restart nginx
$ sudo systemctl enable nginx

Gwajin Nginx Load Daidaitawa a cikin Linux

Don gwada ma'aunin nauyin Nginx, buɗe gidan yanar gizo kuma yi amfani da adireshin da ke gaba don kewaya.

http://tecmintapp.lan

Da zarar shafin yanar gizon ya ɗora, lura da misalin aikace-aikacen da ya ɗora. Sannan ci gaba da shakatawa shafin. A wani lokaci, ya kamata a ɗora ka'idar daga sabar na biyu wanda ke nuna daidaita nauyi.

Yanzu haka kun koyi yadda ake saita Nginx azaman mai ɗaukar nauyin HTTP a cikin Linux. Muna son sanin tunanin ku game da wannan jagorar, kuma musamman game da ɗaukar Nginx azaman ma'aunin ɗaukar nauyi, ta hanyar hanyar neman ra'ayi da ke ƙasa. Don ƙarin bayani, duba takaddun Nginx game da amfani da Nginx azaman mai ɗaukar nauyin HTTP.