லினக்ஸில் ஒரு HTTP சுமை சமநிலையாக Nginx ஐ எவ்வாறு பயன்படுத்துவது


பணிநீக்கத்திற்காக பல பயன்பாட்டு சேவையகங்களை அமைக்கும் போது, சுமை சமநிலை என்பது உள்வரும் சேவை கோரிக்கைகளை அல்லது நெட்வொர்க் போக்குவரத்தை திறம்பட விநியோகிக்க பொதுவாக பயன்படுத்தப்படும் ஒரு பொறிமுறையாகும்.

சுமை சமநிலை பணிநீக்கம், அதிகரித்த நம்பகத்தன்மை மற்றும் அளவிடுதல் ஆகியவற்றின் மூலம் பயன்பாடு அதிகரிப்பு உள்ளிட்ட பல நன்மைகளைக் கொண்டுள்ளது (போக்குவரத்து அதிகரிக்கும் போது கலவையில் கூடுதல் சேவையகங்களைச் சேர்க்கலாம்). இது மேம்பட்ட பயன்பாட்டு செயல்திறன் மற்றும் பல நன்மைகளையும் தருகிறது.

பரிந்துரைக்கப்பட்ட வாசிப்பு: என்ஜினெக்ஸ் வலை சேவையகத்தின் பாதுகாப்பான, கடினமான மற்றும் செயல்திறனை மேம்படுத்துவதற்கான இறுதி வழிகாட்டி

பயன்பாட்டு சேவையகங்களின் குழுவில் உள்வரும் நெட்வொர்க் போக்குவரத்து மற்றும் பணிச்சுமையை விநியோகிக்க Nginx ஒரு திறமையான HTTP சுமை இருப்புநிலையாக பயன்படுத்தப்படலாம், ஒவ்வொரு சந்தர்ப்பத்திலும் தேர்ந்தெடுக்கப்பட்ட சேவையகத்திலிருந்து பதிலை பொருத்தமான கிளையண்டிற்கு திருப்பி அனுப்புகிறது.

Nginx ஆல் ஆதரிக்கப்படும் சுமை சமநிலை முறைகள்:

  • ரவுண்ட் ராபின் - இது பயன்பாட்டு சேவையகங்களுக்கான கோரிக்கைகளை ஒரு ரவுண்ட் ராபின் பாணியில் விநியோகிக்கிறது. எந்த முறையும் குறிப்பிடப்படாதபோது இது இயல்பாகவே பயன்படுத்தப்படுகிறது,
  • குறைந்த-இணைக்கப்பட்ட - அடுத்த கோரிக்கையை குறைந்த பிஸியான சேவையகத்திற்கு (குறைந்த எண்ணிக்கையிலான செயலில் உள்ள இணைப்புகளைக் கொண்ட சேவையகம்),
  • ip-hash - கிளையண்டின் ஐபி முகவரியின் அடிப்படையில் அடுத்த கோரிக்கைக்கு என்ன சேவையகத்தைத் தேர்ந்தெடுக்க வேண்டும் என்பதை தீர்மானிக்க ஒரு ஹாஷ் செயல்பாடு பயன்படுத்தப்படுகிறது. இந்த முறை அமர்வு நிலைத்தன்மையை அனுமதிக்கிறது (ஒரு குறிப்பிட்ட பயன்பாட்டு சேவையகத்துடன் ஒரு கிளையண்டை இணைக்கவும்).

தவிர, நீங்கள் மிகவும் மேம்பட்ட மட்டத்தில் Nginx சுமை சமநிலை வழிமுறைகளை பாதிக்க சேவையக எடைகளைப் பயன்படுத்தலாம். ஒரு சேவையகம் தோல்வியுற்றதாகக் குறிக்க Nginx சுகாதார சோதனைகளையும் ஆதரிக்கிறது (கட்டமைக்கக்கூடிய நேரத்திற்கு, இயல்புநிலை 10 வினாடிகள்) அதன் பதில் பிழையுடன் தோல்வியுற்றால், இதனால் சிறிது நேரம் அடுத்தடுத்த உள்வரும் கோரிக்கைகளுக்கு அந்த சேவையகத்தைத் தேர்ந்தெடுப்பதைத் தவிர்க்கிறது.

இந்த நடைமுறை வழிகாட்டி இரண்டு சேவையகங்களுக்கிடையில் உள்வரும் கிளையன்ட் கோரிக்கைகளை விநியோகிக்க ஒரு HTTP சுமை இருப்புநிலையாக Nginx ஐ எவ்வாறு பயன்படுத்துவது என்பதைக் காட்டுகிறது.

சோதனை நோக்கங்களுக்காக, ஒவ்வொரு பயன்பாட்டு நிகழ்வும் அது இயங்கும் சேவையகத்தைக் குறிக்க (பயனர் இடைமுகத்தில்) பெயரிடப்பட்டுள்ளது.

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

ஒவ்வொரு பயன்பாட்டு சேவையகத்திலும், ஒவ்வொரு பயன்பாட்டு நிகழ்வும் tecmintapp.lan டொமைனைப் பயன்படுத்தி அணுகும்படி கட்டமைக்கப்பட்டுள்ளது. இது முழுமையாக பதிவுசெய்யப்பட்ட டொமைன் என்று கருதினால், பின்வருவனவற்றை டிஎன்எஸ் அமைப்புகளில் சேர்ப்போம்.

A Record   		@   		192.168.58.7

இந்த பதிவு, கிளையன்ட் கோரிக்கைகளை டொமைன் எங்கு செலுத்த வேண்டும் என்று சொல்கிறது, இந்த விஷயத்தில், சுமை இருப்பு (192.168.58.7). DNS A பதிவுகள் IPv4 மதிப்புகளை மட்டுமே ஏற்றுக்கொள்கின்றன. மாற்றாக, கிளையன்ட் மெஷின்களில் உள்ள/etc/host கோப்பையும் பின்வரும் உள்ளீட்டைக் கொண்டு சோதனை நோக்கங்களுக்காகப் பயன்படுத்தலாம்.

192.168.58.7  	tecmintapp.lan

லினக்ஸில் Nginx சுமை சமநிலையை அமைத்தல்

Nginx சுமை சமநிலையை அமைப்பதற்கு முன், உங்கள் விநியோகத்திற்கான இயல்புநிலை தொகுப்பு நிர்வாகியைப் பயன்படுத்தி உங்கள் சேவையகத்தில் Nginx ஐ நிறுவ வேண்டும்.

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

அடுத்து, /etc/nginx/conf.d/loadbalancer.conf என்ற சேவையக தடுப்பு கோப்பை உருவாக்கவும் (உங்களுக்கு விருப்பமான பெயரைக் கொடுங்கள்).

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

பின்வரும் கட்டமைப்பை அதில் நகலெடுத்து ஒட்டவும். சுமை சமநிலை முறை வரையறுக்கப்படாததால் இந்த உள்ளமைவு ரவுண்ட் ராபினுக்கு இயல்புநிலையாகிறது.

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

மேலே உள்ள உள்ளமைவில், ப்ராக்ஸி_பாஸ் உத்தரவு (இது ஒரு இருப்பிடத்திற்குள் குறிப்பிடப்பட வேண்டும், / இந்த வழக்கில்) ஒரு கோரிக்கையை அனுப்ப குறிப்பிடப்படும் HTTP ப்ராக்ஸிட் சேவையகங்களுக்கு அனுப்ப பயன்படுகிறது. சொல் பின்தளத்தில், அப்ஸ்ட்ரீம் உத்தரவில் (சேவையகங்களின் குழுவை வரையறுக்கப் பயன்படுகிறது). மேலும், எடையுள்ள ரவுண்ட் ராபின் சமநிலைப்படுத்தும் பொறிமுறையைப் பயன்படுத்தி சேவையகங்களுக்கு இடையில் கோரிக்கைகள் விநியோகிக்கப்படும்.

குறைந்த இணைப்பு பொறிமுறையைப் பயன்படுத்த, பின்வரும் உள்ளமைவைப் பயன்படுத்தவும்

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

ip_hash அமர்வு நிலைத்தன்மையை இயக்க, இதைப் பயன்படுத்தவும்:

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

சேவையக எடைகளைப் பயன்படுத்தி சுமை சமநிலை முடிவையும் நீங்கள் பாதிக்கலாம். பின்வரும் உள்ளமைவைப் பயன்படுத்தி, வாடிக்கையாளர்களிடமிருந்து ஆறு கோரிக்கைகள் இருந்தால், பயன்பாட்டு சேவையகம் 192.168.58.5 க்கு 4 கோரிக்கைகள் ஒதுக்கப்படும், மேலும் 2 192.168.58.8 க்கு செல்லும்.

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

கோப்பை சேமித்து வெளியேறவும். பின்வரும் கட்டளையை இயக்குவதன் மூலம், சமீபத்திய மாற்றங்களைச் சேர்த்த பிறகு Nginx உள்ளமைவு அமைப்பு சரியானது என்பதை உறுதிப்படுத்தவும்.

$ sudo nginx -t

உள்ளமைவு சரியாக இருந்தால், மறுதொடக்கம் செய்து மாற்றங்களைப் பயன்படுத்த Nginx சேவையை இயக்கவும்.

$ sudo systemctl restart nginx
$ sudo systemctl enable nginx

லினக்ஸில் Nginx சுமை சமநிலையை சோதிக்கிறது

Nginx சுமை சமநிலையை சோதிக்க, ஒரு வலை உலாவியைத் திறந்து பின்வரும் வழியைப் பயன்படுத்தி செல்லவும்.

http://tecmintapp.lan

வலைத்தள இடைமுகம் ஏற்றப்பட்டதும், ஏற்றப்பட்ட பயன்பாட்டு நிகழ்வைக் கவனியுங்கள். தொடர்ந்து பக்கத்தைப் புதுப்பிக்கவும். சில கட்டத்தில், சுமை சமநிலையைக் குறிக்கும் இரண்டாவது சேவையகத்திலிருந்து பயன்பாட்டை ஏற்ற வேண்டும்.

லினக்ஸில் ஒரு HTTP சுமை இருப்புநிலையாக Nginx ஐ எவ்வாறு அமைப்பது என்பதை நீங்கள் இப்போது கற்றுக்கொண்டீர்கள். இந்த வழிகாட்டியைப் பற்றிய உங்கள் எண்ணங்களை நாங்கள் அறிய விரும்புகிறோம், குறிப்பாக Nginx ஐ ஒரு சுமை இருப்புநிலையாகப் பயன்படுத்துவது பற்றி, கீழேயுள்ள கருத்து படிவத்தின் மூலம். மேலும் தகவலுக்கு, Nginx ஐ HTTP சுமை இருப்புநிலையாகப் பயன்படுத்துவது பற்றிய Nginx ஆவணத்தைப் பார்க்கவும்.