डॉकर के साथ लोड संतुलन

वेब एप्लिकेशन चलाते समय, आप आमतौर पर मल्टीथ्रेडिंग या जटिल वेब लूप का उपयोग करने के लिए अपने सॉफ़्टवेयर को परिवर्तित किए बिना अपने संसाधनों का अधिकतम उपयोग करना चाहते हैं। हालाँकि, डॉकर आपको सर्वर संसाधनों का अधिकतम लाभ उठाने के लिए आंतरिक रूप से आपके आवेदन को संतुलित करने का एक सरल तरीका प्रदान करता है। यह लेख आपको दिखाएगा कि CentOS पर Docker का उपयोग करके अपने वेब एप्लिकेशन को संतुलित करने के लिए Nginx का उपयोग कैसे करें।

चरण 1: एक साधारण एप्लिकेशन बनाएं

हम इस सरल अनुप्रयोग के निर्माण के लिए जंग का उपयोग करेंगे। मान लें कि आपके पास जंग स्थापित है, चलाएं cargo new webapp –bin। सफलता मिलने पर, आप एक निर्देशिका देखेंगे webapp। अंदर webapp, आपको एक फ़ाइल दिखाई देगी, जिसका नाम है Cargo.toml। निम्नलिखित पंक्तियों को इसमें संलग्न करें:

[dependencies.iron]
version = "*"

अगला, src/main.rsफ़ाइल के अंदर , सब कुछ हटा दें और इसे निम्नलिखित के साथ आबाद करें:

extern crate iron;

use iron::prelude::*;
use iron::status;

fn main() {
    Iron::new(|_: &mut Request| {
        Ok(Response::with((status::Ok, "Hello Vultr :)")))
    }).http("0.0.0.0:3000").unwrap();
}

नोट: आवेदन के भीतर आईपी को न बदलें। यह कॉन्फ़िगर किया गया है ताकि डॉकर आपके आवेदन को सुन सके।

एक बार जब आप समाप्त कर लें, तो निष्पादित करके एप्लिकेशन को संकलित करें cargo build –release। आपके सर्वर के आधार पर, इसमें कुछ मिनट लग सकते हैं। यदि कोई त्रुटि नहीं है, तो इन चरणों का पालन करके आवेदन का परीक्षण करें:

  • भागो target/release/webapp
  • http://0.0.0.0:3000/अपने ब्राउज़र में नेविगेट करें । 0.0.0.0अपने सर्वर के आईपी पते से बदलें ।

यदि सब कुछ ठीक से काम करता है, तो आप पृष्ठ पर "हैलो वल्चर :)" देखेंगे।

चरण 2: डॉकटर कंटेनर बनाएं

एक बनाएँ Dockerfileऔर इसे निम्नलिखित के साथ आबाद करें:

FROM centos:latest
MAINTAINER User <user@localhost>
RUN yum update -y
COPY ./webapp/target/release/webapp /opt/
EXPOSE 3000
WORKDIR /opt
CMD ./webapp

फ़ाइल सहेजें। फिर नामक एक फाइल बनाएं deploy.shऔर उसे निम्नलिखित के साथ पॉप्युलेट करें:

DEFAULT_PORT=45710
APP_PORT=3000
DEPLOY=5
NAME="webapp"
docker build -t webapp:example . 

for ((i=0; i<DEPLOY; i++)); do
        docker kill $NAME$i ; docker rm $NAME$i
        docker run --name $NAME$i -p 127.0.0.1:$(((i * 1000) + DEFAULT_PORT)):$APP_PORT -d webapp:example
done

जब आप इस स्क्रिप्ट को चलाते हैं, तो यह छवि का निर्माण करेगा और आपके द्वारा निर्धारित राशि के आधार पर कंटेनर को तैनात करेगा (डिफ़ॉल्ट 5 है)। यदि कंटेनर मौजूद है, तो यह फिर से तैनात होने से पहले इसे मार देगा और रजिस्ट्री से हटा देगा।

चरण 3: Nginx कॉन्फ़िगर करें

अब, Nginx कॉन्फ़िगरेशन फ़ाइल बनाएं और इसे निम्न के साथ पॉप्युलेट करें:

upstream application {
    server localhost:45710;
    server localhost:46710;
    server localhost:47710;
    server localhost:48710;
    server localhost:49710;
}

server {
    listen 0.0.0.0:80;    
    location / {
    expires 1w;
        proxy_pass http://application;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

0.0.0.0अपने सर्वर के आईपी पते से बदलें ।

करने के द्वारा Nginx को पुनरारंभ करें systemctl restart nginx। किसी भी त्रुटि का समाधान करें, फिर अगले चरण पर जाएं।

चरण 4: आवेदन को लागू करें

आवेदन को चलाकर तैनात करें bash ./deploy.sh

आप के साथ अपने आवेदन की स्थिति की जाँच कर सकते हैं docker ps- वहाँ 5 छवियों कि साथ शुरू बनाया जाएगा webapp। अब, http://0.0.0.0:3000/अपने ब्राउज़र में नेविगेट करें , आपको फिर से "हैलो, वल्चर :)" संदेश दिखाई देगा।

तो, क्या फर्क पड़ता है, बिल्कुल?

यदि आप लोड बैलेंसर कॉन्फ़िगरेशन के खिलाफ एक बेंचमार्क परीक्षण चलाते हैं, तो आप देखेंगे कि आपके सर्वर संसाधनों का अधिक उपयोग किया जा रहा है, जो आप चाहते हैं, खासकर यदि आपका आवेदन नोड जैसी भाषाओं में बनाया गया है जहां यह सामान्य रूप से एकल थ्रेडेड होगा। यदि आपको कभी भी अपने एप्लिकेशन को अपग्रेड करने की आवश्यकता होती है, तो आप ऐसा कर सकते हैं और deploy.shछवि को फिर से बनाने और अपने कंटेनरों को तैनात करने के लिए फिर से चलाएँ ।



Leave a Comment

CentOS 7 पर कुबेदम के साथ कुबेरनेट्स तैनात करें

CentOS 7 पर कुबेदम के साथ कुबेरनेट्स तैनात करें

अवलोकन यह लेख आपको कुबेरनेट क्लस्टर प्राप्त करने और कुछ ही समय में कुबेदम के साथ चलने में मदद करने के लिए है। यह गाइड दो सर्वरों को तैनात करेगा

उबंटू 18.04 पर डॉकर सीई स्थापित करें

उबंटू 18.04 पर डॉकर सीई स्थापित करें

परिचय डॉकटर एक ऐसा एप्लिकेशन है जो हमें कंटेनरों के रूप में चलाए जाने वाले कार्यक्रमों को तैनात करने की अनुमति देता है। यह लोकप्रिय गो प्रोग्रामिंग भाषा में लिखा गया था

Docker का उपयोग करके एक Node.js एप्लिकेशन को तैनात करें

Docker का उपयोग करके एक Node.js एप्लिकेशन को तैनात करें

यह लेख आपको दिखाएगा कि कैसे एक डॉकटर कंटेनर के भीतर अपने नोड एप्लिकेशन को तैनात किया जाए। नोट: यह ट्यूटोरियल मानता है कि आपके पास डॉकर इंस्टॉल और पढ़ा गया है

डॉकटर-कंपोज़ का उपयोग करके PHP एप्लिकेशन को तैनात करें

डॉकटर-कंपोज़ का उपयोग करके PHP एप्लिकेशन को तैनात करें

PHP अनुप्रयोगों को आमतौर पर एक वेबसर्वर, एक रिलेशनल डेटाबेस सिस्टम और भाषा दुभाषिया द्वारा ही बनाया जाता है। इस ट्यूटोरियल में हम लेवरगिन होंगे

CentOS 7 पर कुबेरनेट्स के साथ शुरुआत करना

CentOS 7 पर कुबेरनेट्स के साथ शुरुआत करना

Kubernetes सर्वरों के एक समूह में कंटेनरीकृत अनुप्रयोगों के प्रबंधन के लिए Google द्वारा विकसित एक खुला स्रोत मंच है। यह एक दशक और बनाता है

उबंटू 16.04 पर रैंचर स्थापित करें

उबंटू 16.04 पर रैंचर स्थापित करें

एक अलग प्रणाली का उपयोग? परिचय Rancher कंटेनर चलाने और एक निजी कंटेनर सेवा बनाने के लिए एक खुला स्रोत मंच है। रंचर आधार है

कोरओएस पर डॉकटर-कंपोजिंग स्थापित करना

कोरओएस पर डॉकटर-कंपोजिंग स्थापित करना

यह आलेख बताता है कि कोरओएस पर डॉकटर-कंपोज़ कैसे स्थापित करें। CoreOS में, / usr / फ़ोल्डर अपरिवर्तनीय है, इसलिए मानक / usr / स्थानीय / बिन पथ अनुपलब्ध है

CoreOS पर, अपनी खुद की डॉकर रजिस्ट्री सेटअप करें

CoreOS पर, अपनी खुद की डॉकर रजिस्ट्री सेटअप करें

हम सभी जानते हैं और कई मशीनों में एप्लिकेशन कंटेनरों को बनाने, प्रबंधित करने और वितरित करने के लिए प्लेटफ़ॉर्म डॉकर को प्यार करते हैं�� Docker Inc. एक सेवा प्रदान करता है

CentOS 7 पर Rancher स्थापित करें

CentOS 7 पर Rancher स्थापित करें

एक अलग प्रणाली का उपयोग? परिचय Rancher कंटेनर चलाने और एक निजी कंटेनर सेवा बनाने के लिए एक खुला स्रोत मंच है। रंचर आधार है

अल्पाइन लिनक्स पर एक डॉकर झुंड बनाएँ 3.9.0

अल्पाइन लिनक्स पर एक डॉकर झुंड बनाएँ 3.9.0

परिचय यह मार्गदर्शिका आपको दिखाएगी कि कैसे कई अल्पाइन लिनक्स 3.9.0 सर्वरों और पोर्टेनर का उपयोग करके डोकर झुंड को बनाया और कॉन्फ़िगर किया जा सकता है। कृपया सचेत रहें

सेंटो 7 पर डॉकर झुंड (सीई) के साथ चिपचिपा सत्र

सेंटो 7 पर डॉकर झुंड (सीई) के साथ चिपचिपा सत्र

एक अलग प्रणाली का उपयोग? परिचय डॉकर झुंड आपके अलग-अलग सर्वरों को कंप्यूटर के क्लस्टर में बदल देता है, स्केलिंग की सुविधा देता है, उच्च-उपलब्धता ए

CentOS 7 पर डॉकर इंस्टॉल करना

CentOS 7 पर डॉकर इंस्टॉल करना

एक अलग प्रणाली का उपयोग? डॉकर एक ऐसा एप्लिकेशन है जो वर्चुअल कंटेनर के भीतर सॉफ्टवेयर की तैनाती की अनुमति देता है। यह गो कार्यक्रम में लिखा गया था

RancherOS पर Rancher सर्वर स्थापित करें

RancherOS पर Rancher सर्वर स्थापित करें

अवलोकन RancherOS एक अविश्वसनीय रूप से हल्का ऑपरेटिंग सिस्टम (केवल 60 एमबी के बारे में) है जो एक ऐसी प्रणाली चलाता है जो पीआईडी ​​0 के रूप में डॉकर डेमन चलाता है।

डेबियन 9 पर डॉकर झुंड (सीई) के साथ चिपचिपा सत्र

डेबियन 9 पर डॉकर झुंड (सीई) के साथ चिपचिपा सत्र

एक अलग प्रणाली का उपयोग? परिचय डॉकर झुंड आपके व्यक्तिगत सर्वरों को कंप्यूटर के एक समूह में बदल देता है; स्केलिंग की सुविधा, उच्च उपलब्धता ए

डॉकटर का उपयोग कैसे करें: अपना पहला डॉकटर कंटेनर बनाना

डॉकटर का उपयोग कैसे करें: अपना पहला डॉकटर कंटेनर बनाना

यह ट्यूटोरियल डॉकर के साथ आरंभ करने की मूल बातें बताता है। मुझे लगता है कि आपके पास पहले से डॉकर इंस्टॉल है। इस ट्यूटोरियल के स्टेप्स a पर काम करेंगे

डॉक्स के साथ CentOS 7 पर SQL सर्वर 2017 (MS-SQL) के साथ आरंभ करें

डॉक्स के साथ CentOS 7 पर SQL सर्वर 2017 (MS-SQL) के साथ आरंभ करें

पूर्वापेक्षा डॉक इंजन 1.8+। न्यूनतम 4GB डिस्क स्थान। न्यूनतम 4GB RAM। चरण 1. SQL- सर्वर, डॉकर बाहों को स्थापित करने के लिए डोकर स्थापित करें

डेबियन 9 पर डॉकटर सीई को स्थापित करना

डेबियन 9 पर डॉकटर सीई को स्थापित करना

एक अलग प्रणाली का उपयोग? परिचय डॉकटर एक ऐसा एप्लिकेशन है जो वर्चुअल कंटेनर के भीतर सॉफ्टवेयर की तैनाती की अनुमति देता है। यह G में लिखा गया था

उबंटू 14.04 पर डॉकर स्थापित करना

उबंटू 14.04 पर डॉकर स्थापित करना

एक अलग प्रणाली का उपयोग? डॉकर एक ऐसा एप्लिकेशन है जो कंटेनर के रूप में चलाए जाने वाले कार्यक्रमों को तैनात करने की अनुमति देता है। यह लोकप्रिय गो कार्यक्रम में लिखा गया था

उबंटू 16.04 को डॉकटर के माध्यम से सेटअप संतरी

उबंटू 16.04 को डॉकटर के माध्यम से सेटअप संतरी

एक अलग प्रणाली का उपयोग? परिचय संतरी त्रुटि ट्रैकिंग के लिए एक खुला स्रोत समाधान है। संतरी अपवादों को ट्रैक करता है और अन्य उपयोगी संदेश फ्रॉस्ट करता है

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

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

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ