![लेनोवो थिंकबुक 14+,16+ लैपटॉप एनवीडिया आरटीएक्स 2050 जीपीयू के साथ लॉन्च](/f/3799b0e6af335957bc7c6c90491087b0.jpg?width=100&height=100)
अधिकतम वेब एप्लिकेशन उपलब्धता, मापनीयता और उच्च प्रदर्शन सुनिश्चित करने के लिए, अब ऐसी तकनीकों को लागू करना आम बात है जो सर्वर क्लस्टरिंग और लोड संतुलन जैसी अतिरेक का परिचय देती हैं। उदाहरण के लिए, सर्वरों का एक समूह स्थापित करना जो सभी एक ही एप्लिकेशन (ओं) को चलाते हैं और फिर ट्रैफ़िक को वितरित करने के लिए उनके सामने लोड बैलेंसर (ओं) को तैनात करते हैं।
हैप्रोक्सी एक खुला स्रोत, शक्तिशाली, उच्च प्रदर्शन, विश्वसनीय, सुरक्षित और व्यापक रूप से उपयोग की जाने वाली उच्च उपलब्धता है टीसीपी/HTTP लोड बैलेंसर, प्रॉक्सी सर्वर और एसएसएल/टीएलएस टर्मिनेटर बहुत उच्च ट्रैफिक वेब साइटों के लिए बनाया गया है। यह मज़बूती से अच्छी तरह से चलता है लिनक्स, सोलारिस, FreeBSD, ओपनबीएसडी साथ ही AIX ऑपरेटिंग सिस्टम।
यह मार्गदर्शिका दिखाती है कि एक समर्पित उच्च उपलब्धता लोड बैलेंसर को कैसे सेट किया जाए हैप्रोक्सी पर सेंटोस 8 के एक समूह में यातायात को नियंत्रित करने के लिए nginx वेब सर्वर। यह यह भी दर्शाता है कि कैसे कॉन्फ़िगर किया जाए एसएसएल/टीएलएस में समाप्ति हैप्रोक्सी.
न्यूनतम के साथ कुल 4 सर्वर सेंटोस 8 इंस्टॉलेशन.
HAProxy सर्वर सेटअप हा प्रॉक्सी सर्वर - होस्टनाम: haproxy-server.tecmint.lan; आईपी: 10.42.0.247। परीक्षण साइट डोमेन: www.tecmint.lan क्लाइंट वेब सर्वर सेटअप वेब सर्वर #1 - होस्टनाम: websrv1.tecmint.lan; आईपी: 10.42.0.200। वेब सर्वर #2 - होस्टनाम: websrv2.tecmint.lan; आईपी: 10.42.0.21। वेब सर्वर #3 - होस्टनाम: websrv3.tecmint.lan; आईपी: 10.42.0.34।
1. अपने सभी में लॉग इन करें सेंटोस 8 क्लाइंट मशीन और स्थापित करें nginx वेब सर्वर का उपयोग कर रहा है डीएनएफ पैकेज मैनेजर के रूप में दिखाया।
# dnf Nginx स्थापित करें।
2. अगला, प्रारंभ करें nginx सेवा, अभी के लिए, इसे सिस्टम बूट पर स्वचालित रूप से शुरू करने के लिए सक्षम करें और पुष्टि करें कि यह चालू है और इसकी स्थिति की जांच करके चल रहा है, का उपयोग करके systemctl आदेश (इसे सभी क्लाइंट मशीनों पर करें)।
# systemctl nginx शुरू करें। # systemctl nginx को सक्षम करें। # systemctl स्थिति nginx.
3. इसके अलावा, अगर फायरवॉल सेवा सभी क्लाइंट मशीनों पर चल रही है (जिसे आप सिस्टमक्टल स्टार्ट फायरवॉल चलाकर जांच सकते हैं), आपको अवश्य जोड़ना चाहिए एचटीटीपी तथा HTTPS के लोड बैलेंसर से अनुरोधों को फ़ायरवॉल से गुजरने की अनुमति देने के लिए फ़ायरवॉल कॉन्फ़िगरेशन में सेवाएं nginx वेब सर्वर। फिर पुनः लोड करें फायरवॉल नए परिवर्तनों को प्रभावित करने के लिए service (इसे सभी क्लाइंट मशीनों पर करें)।
# फ़ायरवॉल-cmd --zone=public --permanent --add-service=http. # फ़ायरवॉल-cmd --zone=public --permanent --add-service=https. # फ़ायरवॉल-cmd --reload.
4. इसके बाद, अपनी स्थानीय मशीनों पर एक वेब ब्राउज़र खोलें और परीक्षण करें कि क्या nginx स्थापना ठीक काम कर रही है। नेविगेट करने के लिए क्लाइंट आईपी का उपयोग करें, एक बार जब आप देखें nginx परीक्षण पृष्ठ, इसका मतलब है कि क्लाइंट मशीन पर स्थापित वेब सर्वर ठीक से काम कर रहा है।
5. इसके बाद, हमें क्लाइंट मशीनों पर परीक्षण पृष्ठ बनाने होंगे जिनका उपयोग हम बाद में परीक्षण करने के लिए करेंगे हैप्रोक्सी सेट अप।
वेब सर्वर #1 # सीपी /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.orig. # गूंज "websrv1.tecmint.lan से साइट दिखा रहा है"> /usr/share/nginx/html/index.html वेब सर्वर #2 # सीपी /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.orig. # गूंज "websrv2.tecmint.lan से साइट दिखा रहा है"> /usr/share/nginx/html/index.html वेब सर्वर #3 # सीपी /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.orig. # इको "websrv3.tecmint.lan से साइट दिखा रहा है"> /usr/share/nginx/html/index.html।
6. अब स्थापित करें हैप्रोक्सी पर पैकेज हैप्रोक्सी निम्न आदेश चलाकर सर्वर।
# dnf हैप्रोक्सी स्थापित करें।
7. अगला, प्रारंभ करें हैप्रोक्सी सेवा, इसे सिस्टम बूट पर ऑटो-स्टार्ट करने के लिए सक्षम करें और इसकी स्थिति सत्यापित करें।
# systemctl हैप्रोक्सी शुरू करें। # systemctl हैप्रोक्सी को सक्षम करें। # सिस्टमक्टल स्टेटस हैप्रोक्सी।
8. अब हम निम्नलिखित कॉन्फ़िगरेशन फ़ाइल का उपयोग करके HAProxy को कॉन्फ़िगर करेंगे।
# vi /etc/haproxy/haproxy.cfg।
कॉन्फ़िगरेशन फ़ाइल को चार प्रमुख खंडों में विभाजित किया गया है।
के तहत विकल्पों को समझने के लिए वैश्विक व्यवस्था तथा चूक, HAProxy दस्तावेज़ पढ़ें (लेख के अंत में दिया गया लिंक)। इस गाइड के लिए, हम डिफ़ॉल्ट का उपयोग करेंगे।
9.हैप्रोक्सी जब एक बार तैनात किया गया तो आपके आईटी बुनियादी ढांचे में महत्वपूर्ण भूमिका निभाएगा, इस प्रकार इसके लिए लॉगिंग को कॉन्फ़िगर करना एक बुनियादी आवश्यकता है; इससे आप अपने बैकएंड वेब सर्वर से प्रत्येक कनेक्शन के बारे में जानकारी प्राप्त कर सकते हैं।
NS लॉग पैरामीटर (निम्नलिखित स्क्रीनशॉट में हाइलाइट किया गया) एक वैश्विक घोषित करता है सिसलोग सर्वर (जैसे rsyslog CentOS में डिफ़ॉल्ट) जो लॉग संदेश प्राप्त करेगा। यहां एक से अधिक सर्वर घोषित किए जा सकते हैं।
डिफ़ॉल्ट कॉन्फ़िगरेशन इंगित करता है स्थानीय होस्ट (127.0.0.1) तथा स्थानीय २ HAProxy लॉग संदेशों की पहचान करने के लिए उपयोग किया जाने वाला डिफ़ॉल्ट सुविधा कोड है rsyslog.
10. इसके बाद, आपको बताने की जरूरत है rsyslog सर्वर कैसे प्राप्त करें और संसाधित करें हैप्रोक्सी लॉग संदेश। इसके लिए rsyslog कॉन्फ़िगरेशन फ़ाइल खोलें /etc/rsyslog.conf या के भीतर एक नई फ़ाइल बनाएँ /etc/rsyslog.d निर्देशिका, उदाहरण के लिए /etc/rsyslog.d/haproxy.conf.
# vi /etc/rsyslog.d/haproxy.conf।
लॉग को एकत्रित करने के लिए निम्न कॉन्फ़िगरेशन को कॉपी और पेस्ट करें यूडीपी डिफ़ॉल्ट पोर्ट पर 514.
$ModLoad imudp $UDPServerAddress 127.0.0.1 $UDPServerRun 514
निर्देश देने के लिए इन पंक्तियों को भी जोड़ें rsyslog गंभीरता के आधार पर दो अलग-अलग लॉग फाइलों को लिखने के लिए, जहां स्थानीय २ उपरोक्त HAProxy कॉन्फ़िगरेशन में परिभाषित सुविधा कोड है।
local2.* /var/log/haproxy-traffic.log local2.notice /var/log/haproxy-admin.log।
11. फ़ाइल को सहेजें और इसे बंद करें। फिर पुनरारंभ करें rsyslog हाल के परिवर्तनों को लागू करने के लिए service.
# systemctl rsyslog को पुनरारंभ करें।
12. इस खंड में, हम प्रदर्शित करेंगे कि फ्रंट-एंड और बैक-एंड प्रॉक्सी को कैसे कॉन्फ़िगर किया जाए। पर वापस जाएं हैप्रोक्सी कॉन्फ़िगरेशन फ़ाइल और डिफ़ॉल्ट फ्रंट-एंड और बैकएंड अनुभागों को निम्नानुसार संशोधित करें। हम प्रत्येक पैरामीटर के विस्तृत विवरण में नहीं जाएंगे, आप हमेशा आधिकारिक दस्तावेज देख सकते हैं।
निम्नलिखित विन्यास परिभाषित करता है a सुनना सेवा करने के लिए इस्तेमाल किया अनुभाग HAProxy आँकड़े पृष्ठ। NS बाँध पैरामीटर एक श्रोता को दिए गए आईपी पते पर असाइन करता है (*
इस मामले में सभी के लिए) और बंदरगाह (9000).
आँकड़े सक्षम सेटिंग सांख्यिकी पृष्ठ को सक्षम करती है जिसे का उपयोग करके एक्सेस किया जाएगा यूआरआई /आंकड़े (अर्थात http://server_ip: ९०००/आंकड़े
).
आँकड़े प्रमाणन सेटिंग का उपयोग पृष्ठ तक पहुँचने पर एक बुनियादी प्रमाणीकरण जोड़ने के लिए किया जाता है (बदलें हैप्रोक्सी तथा [ईमेल संरक्षित] अपनी पसंद के उपयोगकर्ता नाम और पासवर्ड के साथ)।
आँकड़ों को बाइंड करें *: 9000 आँकड़े सक्षम करें आँकड़े छिपाने-संस्करण आँकड़े uri / आँकड़े आँकड़े व्यवस्थापक यदि LOCALHOST आँकड़े ऑथ हैप्रोक्सी:[ईमेल संरक्षित]
13. अगला कॉन्फ़िगरेशन एक फ्रंटएंड सेक्शन को परिभाषित करता है जिसे कहा जाता है टी एल (आप अपनी पसंद का नाम दे सकते हैं)। NS तरीका पैरामीटर उस मोड को परिभाषित करता है जिसमें HAProxy संचालित होता है।
NS एसीएल (कंट्रोल सूची को खोलो) पैरामीटर का उपयोग अनुरोध से निकाली गई सामग्री के आधार पर निर्णय लेने के लिए किया जाता है। इस उदाहरण में, अनुरोध को सादा माना जाता है एचटीटीपी अगर इसे खत्म नहीं किया गया है एसएसएल.
फिर http-अनुरोध सेट-हेडर अनुरोध में HTTP शीर्षलेख जोड़ने के लिए सेटिंग का उपयोग किया जाता है। यह सूचित करने में मदद करता है nginx कि प्रारंभिक अनुरोध खत्म कर दिया गया था एचटीटीपी (या पोर्ट के माध्यम से) 80).
NS डिफ़ॉल्ट_बैकएंड या use_backend निर्देश बैकएंड सर्वर को परिभाषित करता है, इस मामले में, द्वारा संदर्भित TL_web_servers.
ध्यान दें कि हैप्रोक्सी एक "वापसी करेगा503 सेवा अनुपलब्ध त्रुटि"यदि कोई अनुरोध a. द्वारा रूट नहीं किया गया है use_backend या डिफ़ॉल्ट_बैकएंड निर्देश।
फ्रंटएंड टीएल बाइंड *:80 मोड http acl http ssl_fc, http-request सेट-हेडर X-फॉरवर्डेड-प्रोटोकॉल http नहीं है अगर http default_backend TL_web_servers.
14. फिर हमें एक बैकएंड सेक्शन को परिभाषित करने की जरूरत है जहां संतुलन सेटिंग परिभाषित करती है कि कैसे हैप्रोक्सी अनुरोध को संसाधित करने के लिए बैक-एंड सर्वर का चयन करता है यदि कोई दृढ़ता विधि उस चयन को ओवरराइड नहीं करती है।
NS कुकी निर्देश सक्षम करता है कुकी-आधारित दृढ़ता, यह निर्देश हैप्रोक्सी नाम की कुकी भेजने के लिए सर्वरिड ग्राहक के लिए और इसे के साथ संबद्ध करने के लिए पहचान सर्वर का जिसने प्रारंभिक प्रतिक्रिया दी।
NS सर्वर प्रारूप में अपस्ट्रीम सर्वर को परिभाषित करने के लिए निर्देश का उपयोग किया जाता है विच्छेद_नाम (उदाहरण के लिए वेबएसआरवी1), सर्वर_आईपी: पोर्ट तथा विकल्प.
एक प्रमुख विकल्प है जाँच जो बताता है हैप्रोक्सी सर्वर की उपलब्धता की जाँच करते रहने और आँकड़े पृष्ठ पर रिपोर्ट करने के लिए।
बैकएंड TL_web_servers मोड http बैलेंस राउंडरॉबिन विकल्प httpchk HEAD / कुकी SERVERUID अप्रत्यक्ष nocache सर्वर websrv1 डालें 10.42.0.200:80 कुकी websrv1 चेक सर्वर websrv2 10.42.0.21:80 कुकी websrv2 चेक सर्वर websrv3 10.42.0.34:80 कुकी websrv3 जाँच।
नीचे दिए गए स्क्रीनशॉट में दिखाए गए अनुसार किसी भी अन्य फ्रंटएंड और बैकएंड अनुभागों पर टिप्पणी करें। फ़ाइल को सहेजें और इसे बंद करें।
15. अब पुनः आरंभ करें हैप्रोक्सी नए परिवर्तनों को लागू करने के लिए service.
# systemctl हैप्रोक्सी को पुनरारंभ करें।
16. अगला, सुनिश्चित करें कि एचटीटीपी (बंदरगाह 80) तथा HTTPS के (बंदरगाह 433) क्लाइंट अनुरोधों को निम्नानुसार स्वीकार करने के लिए फ़ायरवॉल में सेवाएँ खोली जाती हैं। इसके अलावा, खुला बंदरगाह 9000 फ़ायरवॉल में आँकड़े पृष्ठ तक पहुँचने और फ़ायरवॉल सेटिंग्स को पुनः लोड करने के लिए।
# फ़ायरवॉल-cmd --zone=public --permanent --add-service=http. # फ़ायरवॉल-cmd --zone=public --permanent –add-service=https. # फ़ायरवॉल-cmd --zone=public --permanent --add-port=9000/tcp. # फ़ायरवॉल-cmd --reload.
17. अब इसका परीक्षण करने का समय है हाप्रक्सॉय सेट अप। स्थानीय डेस्कटॉप मशीन पर जहाँ से आप सभी सर्वरों तक पहुँच प्राप्त कर रहे हैं, निम्न पंक्ति को इसमें जोड़ें /etc/hosts फ़ाइल हमें डमी साइट डोमेन का उपयोग करने में सक्षम बनाती है।
10.42.0.247 www.tecmint.lan।
18. फिर एक ब्राउज़र खोलें और सर्वर पते या साइट डोमेन का उपयोग करके नेविगेट करें।
http://10.42.0.247/ या। http://www.tecmint.lan/
19. एक्सेस करने के लिए हैप्रोक्सी सांख्यिकी पृष्ठ, निम्न पते का उपयोग करें।
http://10.42.0.247:9000/stats.
फिर उस उपयोगकर्ता नाम और पासवर्ड का उपयोग करें जिसे आपने HAProxy कॉन्फ़िगरेशन फ़ाइल में परिभाषित किया है (आंकड़े प्रमाणन पैरामीटर देखें)।
एक सफल लॉगिन के बाद, आप पर उतरेंगे हैप्रोक्सी सांख्यिकी पृष्ठ जो आपको मेट्रिक्स दिखाता है जो आपके सर्वर के स्वास्थ्य, वर्तमान अनुरोध दरों, प्रतिक्रिया समय और बहुत कुछ को कवर करता है।
रंग कोड के काम करने के संबंध में स्थिति रिपोर्ट कैसे काम करती है, यह प्रदर्शित करने के लिए, हमने बैक-एंड सर्वरों में से एक को रखा है।
20. इस अंतिम खंड में, हम प्रदर्शित करेंगे कि कैसे कॉन्फ़िगर किया जाए एसएसएल/टीएलएस HAProxy सर्वर और क्लाइंट के बीच सभी संचार को सुरक्षित करने के लिए। HAProxy चार प्रमुख का समर्थन करता है HTTPS के कॉन्फ़िगरेशन मोड, लेकिन इस गाइड के लिए, हम उपयोग करेंगे एसएसएल/टीएलएस उतारना।
में एसएसएल/टीएलएस ऑफलोडिंग मोड, हैप्रोक्सी क्लाइंट-साइड पर ट्रैफ़िक को डिक्रिप्ट करता है और स्पष्ट ट्रैफ़िक में बैकएंड सर्वर से जुड़ जाता है।
हम बनाकर शुरू करेंगे प्रमाणपत्र तथा चाभी जैसा दिखाया गया है (स्क्रीनशॉट पर हाइलाइट किए गए अनुसार प्रमाणपत्र निर्माण के दौरान आपकी कंपनी के विवरण के आधार पर प्रश्नों के उत्तर दें)।
# mkdir /etc/ssl/tecmint.lan. # सीडी /etc/ssl/tecmint.lan/ # opensl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout /etc/ssl/tecmint.lan.key -out /etc/ssl/tecmint.lan.crt. # सीडी /etc/ssl/tecmint.lan/ # बिल्ली tecmint.crt tecmint.key >tecmint.pem. # एलएस -एल।
21. अगला, खोलें हैप्रोक्सी विन्यास फाइल (/etc/haproxy/haproxy.cfg) और फ़्रंट-एंड अनुभाग संपादित करें।
फ्रंटएंड टीएल बाइंड *:80 बाइंड *:443 एसएसएल सीआरटी /etc/ssl/tecmint.lan/tecmint.pem रीडायरेक्ट स्कीम https if !{ ssl_fc } मोड http acl http ssl_fc, acl नहीं https ssl_fc http-अनुरोध सेट-हेडर X-अग्रेषित-प्रोटोकॉल http यदि http-अनुरोध सेट-हेडर X-अग्रेषित-प्रोटोकॉल https यदि https default_backend TL_web_servers.
फ़ाइल को सहेजें और इसे बंद करें।
22. फिर नए परिवर्तनों को लागू करने के लिए HAProxy सेवा को पुनरारंभ करें।
# systemctl haproxy.service को पुनरारंभ करें।
23. इसके बाद, एक वेब ब्राउज़र खोलें और साइट को एक बार फिर एक्सेस करने का प्रयास करें। स्व-हस्ताक्षरित प्रमाणपत्र के कारण ब्राउज़र एक त्रुटि दिखाएगा, क्लिक करें उन्नत आगे बढ़ने के लिए।
अभी के लिए इतना ही! प्रत्येक वेब एप्लिकेशन की आवश्यकताओं का अपना सेट होता है, आपको अपने आईटी बुनियादी ढांचे और एप्लिकेशन की आवश्यकताओं के अनुरूप लोड संतुलन को डिजाइन और कॉन्फ़िगर करने की आवश्यकता होती है।
इस गाइड में उपयोग किए गए कुछ कॉन्फ़िगरेशन विकल्पों और आम तौर पर उपयोग करने के तरीके के बारे में अधिक जानकारी प्राप्त करने के लिए हैप्रोक्सी, अधिकारी देखें HAProxy समुदाय संस्करण प्रलेखन या HAProxy एंटरप्राइज़ संस्करण दस्तावेज़ीकरण. आप नीचे दिए गए फीडबैक फॉर्म के माध्यम से कोई प्रश्न या विचार पोस्ट कर सकते हैं।