Computer >> कंप्यूटर >  >> प्रणाली >> Linux

Nginx के लिए लोड बैलेंसर के रूप में HAProxy का उपयोग करना

इस लेख में हम दिखाएंगे कि कैसे HAProxy को लोड बैलेंसर के रूप में कॉन्फ़िगर किया जाए दो Nginx . के लिए वेब सर्वर (आप इसे अपाचे से बदल सकते हैं)। CentOS का उपयोग सभी मामलों में एक होस्ट ऑपरेटिंग सिस्टम के रूप में किया जाता है।

HAProxy एक सर्वर सॉफ्टवेयर है जो कई बैकएंड सर्वरों के बीच आने वाले अनुरोधों को वितरित करके टीसीपी और एचटीटीपी ऐप्स के लिए उच्च उपलब्धता और लोड संतुलन प्रदान करता है। HAProxy का उपयोग कई लोकप्रिय संसाधनों जैसे ट्विटर . पर किया जाता है , इंस्टाग्राम , गीथब , अमेज़ॅन, आदि।

HAProxy एक अलग सर्वर पर स्थापित है जो क्लाइंट अनुरोधों को स्वीकार करता है और उन्हें Nginx वेब सर्वर पर पुनर्निर्देशित करता है। आप सामान्य सिस्टम आर्किटेक्चर नीचे देख सकते हैं:

Nginx के लिए लोड बैलेंसर के रूप में HAProxy का उपयोग करना

बैकएंड सर्वर पर Nginx कॉन्फ़िगरेशन

हम अपने वेब सर्वर पर Nginx की स्थापना और कॉन्फ़िगरेशन के साथ शुरू करते हैं, लोड के बीच संतुलित होगा। यम (या RHEL/CentOS 8 पर dnf) का उपयोग करके EPEL रिपॉजिटरी और nginx स्थापित करें:

#yum install epel-release -y
#yum install nginx -y

फिर, nginx . में .गोपनीयता फ़ाइलें निर्दिष्ट करती हैं कि सर्वर को केवल HAProxy सर्वर और बैकएंड सर्वर से अनुरोधों को संसाधित करना चाहिए:

बैकएंड सर्वर 1:

<पूर्व>सर्वर {सुनो current_server_IP_address:80 default_server; सेकेंड_बैकएंड_सर्वर_आईपी_एड्रेस की अनुमति दें; IP_haproxy की अनुमति दें; सभी को नकारें; सर्वर का नाम _; रूट /usr/share/nginx/html; # डिफ़ॉल्ट सर्वर ब्लॉक के लिए कॉन्फ़िगरेशन फ़ाइलें लोड करें। शामिल /etc/nginx/default.d/*.conf; स्थान / { }

बैकएंड सर्वर 2:

<पूर्व>सर्वर {सुनो current_server_IP_address:80 default_server; first_backend_server_IP_address की अनुमति दें; IP_haproxy की अनुमति दें; सभी को नकारें; सर्वर का नाम _; रूट /usr/share/nginx/html; # डिफ़ॉल्ट सर्वर ब्लॉक के लिए कॉन्फ़िगरेशन फ़ाइलें लोड करें। शामिल /etc/nginx/default.d/*.conf; स्थान / { }

Nginx कॉन्फ़िगरेशन फ़ाइल डिफ़ॉल्ट है, हमने अभी-अभी सर्वरों को आईपी सुनने में जोड़ा है और अनुमति . का उपयोग करके हमारे सर्वर को छोड़कर सभी तक पहुंच से वंचित कर दिया और इनकार करें निर्देश।

वेब सर्वर काम करना शुरू कर सके, इसके लिए फ़ायरवॉल या iptables का उपयोग करके फ़ायरवॉल HTTP पोर्ट खोलें:

#firewall-cmd --permanent –add-service=http
#firewall-cmd –reload

अपने किसी भी बैकएंड सर्वर पर एक परीक्षण जांच करें:

# कर्ल IP_of_the_second_server

यहां आपको एक html मिलेगा फ़ाइल

सर्वर ने एक मानक nginx अनुक्रमणिका फ़ाइल लौटा दी है। चेक को अधिक सुविधाजनक बनाने के लिए, मैंने अपने ब्राउज़र में यह देखने के लिए प्रत्येक बैकएंड सर्वर पर इंडेक्स फ़ाइल की सामग्री को बदल दिया है कि किस सर्वर ने वर्तमान अनुरोध को संसाधित किया है।

Nginx अनुक्रमणिका फ़ाइल /usr/share/nginx/html/ में स्थित है ।

HAProxy लोड बैलेंसर कॉन्फ़िगरेशन

आइए उस सर्वर पर HAProxy को स्थापित और कॉन्फ़िगर करें जिसका उपयोग लोड बैलेंसर के रूप में किया जाएगा।

HAProxy स्थापित करें:
#yum install epel-release -y
#yum install haproxy -y

लेन-देन चलाना स्थापित करना:haproxy-1.5.18-9.el7.x86_64 1/1सत्यापित करना:haproxy-1.5.18-9.el7.x86_64 1/1Installed:haproxy.x86_64 0:1.5.18-9.el7Complete! 

HAProxy को सक्षम करने के लिए, आपको सक्षम=1 . जोड़ना होगा /etc/default/haproxy . के लिए फ़ाइल:

#नैनो/आदि/डिफ़ॉल्ट/हैप्रोक्सी

Nginx के लिए लोड बैलेंसर के रूप में HAProxy का उपयोग करना

अब HAProxy कॉन्फ़िगरेशन पर चलते हैं। हमारे सबसे सरल कॉन्फ़िगरेशन में, लोड बैलेंसर सर्वर सभी HTTP अनुरोधों को संसाधित करेगा और उन्हें बैकएंड सर्वर पर भेज देगा:

#nano /etc/haproxy/haproxy.cfg

<पूर्व>लॉग /देव/लॉग लोकल0 क्रोट /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 उपयोगकर्ता हैप्रोक्सी समूह हैप्रोक्सी डेमॉनडिफॉल्ट्स मोड http लॉग ग्लोबल विकल्प httplog विकल्प पुनः प्रेषण 3 टाइमआउट http-अनुरोध 10s टाइमआउट कतार 1m टाइमआउट कनेक्ट 10s टाइमआउट क्लाइंट 1m टाइमआउट सर्वर 1m टाइमआउट http-keep-alive 10s टाइमआउट चेक 10s maxconn 3000frontend www बाइंड बैलेंसर_IP_address:80 default_backend nginx_poolbackend nginx_pool बैलेंस राउंडरोबिन मोड http सर्वर web1 IP_of_the_first_backend_server:80 चेक सर्वर web2 IP_of

अपना कॉन्फ़िगरेशन सहेजने के बाद, haproxy.cfg सिंटैक्स की जाँच करें:

#haproxy -f /etc/haproxy/haproxy.cfg -c

अगर यह ठीक है, तो आपको इस तरह का एक संदेश मिलेगा:

कॉन्फ़िगरेशन फ़ाइल मान्य है

फिर HAProxy को पुनरारंभ करें और इसे Linux स्टार्टअप में जोड़ें। और HTTP पोर्ट को फ़ायरवॉल में खोलें। />#फ़ायरवॉल-cmd -reload

इस प्रकार, लोड बैलेंसर को कॉन्फ़िगर किया गया है। आइए एक ब्राउज़र में HAProxy सर्वर IP पता खोलकर इसकी जाँच करें:

Nginx के लिए लोड बैलेंसर के रूप में HAProxy का उपयोग करना

जैसा कि आप देख सकते हैं, दोनों सर्वरों ने बदले में सामग्री लौटा दी है, इसलिए बैलेंसर काम कर रहा है।

Haproxy.cfg कॉन्फ़िगरेशन फ़ाइल पैरामीटर

आइए HAProxy एल्गोरिदम के मुख्य उदाहरणों पर विचार करें:

  • राउंडरोबिन - डिफ़ॉल्ट एल्गोरिथ्म है, बदले में सर्वर को अनुरोध भेजता है। हमने अपने उदाहरण में इस पद्धति का उपयोग किया है।
  • Leastconn - कम से कम सक्रिय कनेक्शन वाले सर्वर का चयन करता है। उन परियोजनाओं के लिए आवेदन करने की अनुशंसा की जाती है, जिनमें सत्रों का लंबे समय तक उपयोग किया जाता है।
  • स्रोत - उपयोगकर्ता के IP पतों के हैश के आधार पर सर्वर का चयन करता है। इस मोड में, यदि उपयोगकर्ता का IP पता अपरिवर्तित रहता है, तो क्लाइंट उसी वेब सर्वर को कनेक्ट करेगा।

आइए कुछ कॉन्फ़िगरेशन फ़ाइल पैरामीटर का वर्णन करें।

वैश्विक ब्लॉक करें:

  • लॉग — लॉग इन /dev/log सेविंग लोकल0 को ऑब्जेक्ट वैल्यू के रूप में लिखता है
  • क्रोट — सुरक्षा सेटिंग्स, HAProxy को निर्दिष्ट निर्देशिका में लॉक करता है
  • मैक्सकॉन — प्रति प्रक्रिया समवर्ती कनेक्शन की अधिकतम संख्या
  • डेमन — एक प्रक्रिया को डेमॉन के रूप में चलाना

डिफ़ॉल्ट खंड मैथा। यह ब्लॉक इसके बाद के अन्य सभी अनुभागों के लिए डिफ़ॉल्ट पैरामीटर सेट करता है:

  • लॉग - सेट करता है कि कौन से लॉग में लिखी गई प्रविष्टियाँ हैं (इस मामले में, वैश्विक का अर्थ है कि वैश्विक अनुभाग में निर्धारित मापदंडों का उपयोग किया जाता है)
  • मोड — संचार प्रोटोकॉल सेट करता है और इसमें निम्न में से एक मान होता है:tcp, http या health
  • पुन:प्रयास करता है — विफलता की स्थिति में सर्वर से जुड़ने के प्रयासों की संख्या
  • विकल्प httplog — लॉग प्रारूप का उपयोग किया जाता है यदि HAProxy HTTP अनुरोधों को प्रॉक्सी कर रहा है
  • विकल्प पुनः प्रेषण - सर्वर के विफल होने की स्थिति में प्रोग्राम को सत्र को समाप्त करने और फिर से भेजने की अनुमति देता है
  • समय समाप्त — सर्वर से कनेक्शन सफलतापूर्वक स्थापित होने तक अधिकतम प्रतीक्षा समय

अलग-अलग टाइमआउट से संबंधित बहुत सारे पैरामीटर भी हैं।

HAProxy आँकड़े एकत्रित करना

आंकड़े ब्लॉक को कॉन्फ़िगरेशन फ़ाइल में जोड़ें:

सुनो आँकड़े बाँध :10001 आँकड़े सक्षम आँकड़े uri /haproxy_stats stats auth admin:admin

विवरण:

  • बाइंड - जिस पोर्ट पर आप आंकड़े देख सकते हैं
  • आंकड़े सक्षम करें - सांख्यिकीय रिपोर्ट सक्षम करता है
  • आँकड़े uri - आँकड़े पृष्ठ का पता सेट करता है
  • आंकड़े प्रमाणीकरण - लॉगिन और पासवर्ड एक्सेस करने के लिए
आप अपनी पसंद का कोई भी TCP पोर्ट निर्दिष्ट कर सकते हैं। यदि ऊपर निर्दिष्ट व्यक्ति व्यस्त है या आपको शोभा नहीं देता है।

अपने फ़ायरवॉल में ऊपर निर्दिष्ट पोर्ट पर आने वाले कनेक्शन को स्वीकार करें:

फ़ायरवॉल-cmd --permanent –add-port=10001/tcp
फ़ायरवॉल-cmd –reload

HAProxy रिपोर्ट देखने के लिए, इस लिंक का अनुसरण करें:

https://hostname_haproxy:10001/haproxy_stats

Nginx के लिए लोड बैलेंसर के रूप में HAProxy का उपयोग करना अपने ब्राउज़र में बैलेंसर आईपी एड्रेस खोलें और F5 दबाना शुरू करें। . HAproxy आँकड़े बदल जाएंगे।

इस लेख में हमने बुनियादी HAProxy विन्यास पर विचार किया है। HAProxy मॉड्यूल का उपयोग करने के और भी मामले हैं।

हमारे स्कीमा में, लोड संतुलन HAProxy सर्वर विफलता का एकल बिंदु बन जाता है। अपनी वेब सेवा की दोष सहिष्णुता बढ़ाने के लिए, आप एक और HAProxy सर्वर जोड़ सकते हैं और Keepalived का उपयोग करके उच्च-उपलब्धता लोड बैलेंसर कॉन्फ़िगरेशन को लागू कर सकते हैं। आपको इस तरह का एक स्कीमा मिलेगा:

Nginx के लिए लोड बैलेंसर के रूप में HAProxy का उपयोग करना


  1. फिक्स:सर्वर से कनेक्ट करने में Omegle त्रुटि

    Omegle एक चैट रूम है जहां आप दुनिया में कहीं भी किसी अजनबी के साथ वीडियो चैट कर सकते हैं और यह शायद इस तरह के उद्देश्य के लिए सबसे सफल वेबसाइट है। हालांकि, साइट अभी भी सर्वर से कनेक्ट करने में त्रुटि त्रुटि संदेश से जूझ रही है जो आपको इस सेवा का उपयोग करने से बिल्कुल भी रोकता है। समस्या का समाधान

  1. 10 शुरुआती के लिए मैकबुक प्रो टिप्स

    मैकबुक प्रो एक बहुत शक्तिशाली लैपटॉप है; जो आपकी उत्पादकता को कई गुना बढ़ा सकता है। लेकिन यह थोड़ा जटिल भी हो सकता है, खासकर यदि आप विंडोज वातावरण में काम करने के आदी हैं। इस लेख में, हमने 10 उपयोगी टिप्स को एक साथ रखा है जो एल्यूमीनियम के इस आकर्षक, अत्याधुनिक ब्लॉक के साथ आपकी परिचितता को तेज करें

  1. Windows 10 के लिए MagicDisc का सर्वश्रेष्ठ विकल्प

    मैजिकडिस्क के बंद होने के साथ, लोग सीडी/डीवीडी छवियों को सीडी या डीवीडी पर बर्न किए बिना उपयोग करने के लिए एक विकल्प की तलाश कर रहे हैं। यदि आप भी MagicDisc के विकल्पों की तलाश कर रहे हैं, तो आप सही जगह पर हैं। इस पोस्ट में, हम विंडोज 10 के लिए शीर्ष 10 सर्वश्रेष्ठ मैजिकडिस्क विकल्पों के बारे में ब