आप जैसे पाठक MUO का समर्थन करने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन अर्जित कर सकते हैं। और पढ़ें।

NGINX एक लोकप्रिय, मुफ़्त और ओपन-सोर्स वेब सर्वर है। वेब सर्वर को काम करने के लिए डिफ़ॉल्ट एनजीआईएनएक्स कॉन्फ़िगरेशन काफी अच्छा है।

हालाँकि, यदि आप एनजीआईएनएक्स का पूरी तरह से उपयोग करना चाहते हैं, तो आपको इसकी कॉन्फ़िगरेशन फ़ाइलों के साथ खेलना होगा और पैरामीटर सेट करना होगा जो सर्वर के प्रदर्शन को अनुकूलित करेगा। आपको कॉन्फ़िगरेशन फ़ाइलें /etc/nginx लिनक्स मशीन पर निर्देशिका।

एनजीआईएनएक्स क्या है?

एनजीआईएनएक्स एक आधुनिक वेब सर्वर है जिसे आप मीडिया स्ट्रीमर, मेल सर्वर, के रूप में उपयोग कर सकते हैं। रिवर्स प्रॉक्सी, लोड बैलेंसर, कैश सर्वर, और बहुत कुछ।

VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter, आदि जैसे कई बड़े प्रोफाइल द्वारा उपयोग किया जाता है, NGINX व्यापक रूप से अपने शीर्ष प्रदर्शन के लिए जाना जाता है। एनजीआईएनएक्स का उपयोग करने का एक और फायदा यह है कि इसे कॉन्फ़िगर करना और सीखना आसान है।

Linux पर NGINX प्रदर्शन को ट्यून करने के लिए पूर्वापेक्षाएँ

instagram viewer

NGINX कॉन्फ़िगरेशन के साथ शुरू करने से पहले आपको निम्नलिखित आवश्यकताओं को पूरा करना होगा:

  1. एक एनजीआईएनएक्स सर्वर लिनक्स पर तैनात और कॉन्फ़िगर किया गया
  2. एनजीआईएनएक्स और इसकी कॉन्फ़िगरेशन फ़ाइलों की बुनियादी समझ

यदि आप इन आवश्यकताओं को पूरा करते हैं, तो आप इष्टतम प्रदर्शन के लिए एनजीआईएनएक्स को ट्यून करने के लिए तैयार हैं। आइए देखें कि इसे कैसे करना है।

1. एनजीआईएनएक्स में कार्यकर्ता प्रक्रियाओं को कॉन्फ़िगर करें

NGINX आर्किटेक्चर में एक मास्टर प्रोसेस और कई वर्कर प्रोसेस होते हैं। मास्टर प्रक्रिया का काम विन्यास का आकलन करना और श्रमिकों का प्रबंधन करना है। दूसरी ओर, एक कार्यकर्ता प्रक्रिया की भूमिका आने वाले अनुरोधों से निपटने और क्लाइंट और सर्वर के बीच संबंध बनाने की है।

प्रक्रिया मान पर सेट है ऑटो डिफ़ॉल्ट रूप से। यह उपलब्ध सीपीयू कोर की संख्या के बराबर कार्यकर्ता प्रक्रियाओं की संख्या निर्धारित करता है। यह जानने के लिए कि आपके सिस्टम में कितने CPU कोर मौजूद हैं, निम्नलिखित कमांड चलाएँ:

ग्रेप प्रोसेसर / proc / cpuinfo | wc -एल

यदि आप कार्यकर्ता प्रक्रियाओं की संख्या बढ़ाना चाहते हैं, तो आपको इसे NGINX कॉन्फ़िगरेशन फ़ाइल में कॉन्फ़िगर करने की आवश्यकता है।

फ़ाइल को नैनो के साथ खोलें:

नैनो आदि/nginx/nginx.conf

अधिक कार्यकर्ता प्रक्रियाओं को कॉन्फ़िगर करने के लिए, डिफ़ॉल्ट मान को अपने सिस्टम में उपलब्ध CPU कोर की अधिकतम संख्या में बदलें।

2. कार्यकर्ता कनेक्शन कॉन्फ़िगर करें

एक अन्य पैरामीटर जिसे आप एनजीआईएनएक्स के प्रदर्शन को बढ़ाने के लिए संशोधित कर सकते हैं वह कार्यकर्ता कनेक्शन है। यह टीसीपी कनेक्शन की अधिकतम संख्या है जिसे प्रत्येक कार्यकर्ता प्रक्रिया एक साथ संभाल सकती है।

अधिकांश प्रणालियों में 512 कनेक्शनों का डिफ़ॉल्ट मान होता है, लेकिन कई आधुनिक प्रणालियां भी बड़ी संख्या का समर्थन करती हैं। आप जांच सकते हैं कि आपका सिस्टम कितने कनेक्शनों का समर्थन करता है:

ulimit -एन

आउटपुट समर्थित कनेक्शनों की अधिकतम संख्या होगी। इसके बाद आप संशोधित कर सकते हैं कार्यकर्ता_कनेक्शन प्रदर्शन में सुधार के लिए NGINX कॉन्फ़िगरेशन फ़ाइल में चर।

3. NGINX में GZIP संपीड़न की अनुमति दें

NGINX फ़ाइल संपीड़न और डीकंप्रेसन के लिए GZIP का उपयोग करता है। यदि एनजीआईएनएक्स कॉन्फ़िगरेशन फ़ाइल में सक्षम है, तो आप बैंडविड्थ को बचा सकते हैं और कनेक्शन धीमा होने पर वेबसाइट के लोडिंग समय को बढ़ा सकते हैं।

GZIP संपीड़न की अनुमति देने के लिए, NGINX कॉन्फ़िगरेशन फ़ाइल में निम्न पंक्तियाँ जोड़ें:

सर्वर {
गज़िप चालू;
gzip_vary on;
gzip_min_length 10240;
gzip_proxyed की समय सीमा समाप्त नहीं-कैशनहीं-इकट्ठा करनानिजी अधिकार;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "एमएसआईई [1-6]\।";
}

4. एनजीआईएनएक्स में टाइमआउट मान सीमित करें

एनजीआईएनएक्स के प्रदर्शन को बढ़ाने में कम टाइमआउट मान भी प्रमुख भूमिका निभाते हैं। जिंदा रहो कनेक्शन खोलते और बंद करते समय कनेक्शन प्रोसेसर और नेटवर्क ओवरहेड को कम करते हैं।

टाइमआउट को सीमित करने के लिए आप कॉन्फ़िगरेशन फ़ाइल में निम्न पैरामीटर संशोधित कर सकते हैं:

एचटीटीपी
{
क्लाइंट_बॉडी_टाइमआउट 12;
क्लाइंट_हेडर_टाइमआउट 12;
कीपलाइव_टाइमआउट 15;
सेंड_टाइमआउट 10;
}

5. बफर आकार समायोजित करें

आप सर्वर के प्रदर्शन को अनुकूलित करने के लिए NGINX बफ़र्स को भी समायोजित कर सकते हैं। यदि बफ़र का आकार बहुत कम है, तो NGINX एक अस्थायी फ़ाइल को लिखेगा जिसके कारण विशाल I/O संचालन लगातार चलता रहता है।

एनजीआईएनएक्स के सर्वोत्तम कार्य करने के लिए आपको निम्न बफर पैरामीटर सेट करने की आवश्यकता है:

एचटीटीपी
{
क्लाइंट_बॉडी_बफ़र_साइज़ 10K;
क्लाइंट_हेडर_बफ़र_साइज़ 1k;
क्लाइंट_मैक्स_बॉडी_साइज़ 8 मी;
बड़े_क्लाइंट_हेडर_बफ़र्स 4 4k;
}

6. एक्सेस लॉग अक्षम करें या एक्सेस लॉग बफ़रिंग सक्षम करें

लॉग बड़ी मात्रा में डिस्क स्थान और CPU/IO चक्रों का उपभोग करते हैं जो सर्वर के प्रदर्शन को प्रभावित कर सकते हैं यदि यह प्रत्येक अनुरोध को लॉग करता है।

आप एक्सेस लॉग को अक्षम कर सकते हैं जो कुछ डिस्क स्पेस और सीपीयू प्रोसेसिंग को बचाएगा। एक्सेस लॉग को अक्षम करने के लिए, निम्न पंक्ति को NGINX कॉन्फ़िगरेशन फ़ाइल में जोड़ें:

access_log बंद;

लॉग महत्वपूर्ण हैं क्योंकि वे किसी समस्या के निवारण में मदद करते हैं। लॉग को पूरी तरह अक्षम करना एक अच्छा अभ्यास नहीं है। इस स्थिति में, आप एक्सेस लॉग बफ़रिंग को सक्षम कर सकते हैं। यह एनजीआईएनएक्स को लॉग की एक श्रृंखला को बफ़र करने और प्रत्येक अनुरोध पर अलग-अलग लॉग संचालन लागू करने के बजाय एक साथ लॉग फ़ाइल में लिखने की अनुमति देगा।

एक्सेस लॉग बफ़रिंग की अनुमति देने के लिए NGINX कॉन्फ़िग फ़ाइल में निम्न पंक्ति जोड़ें:

access_log/var/log/nginx/access.logमुख्यबफर=16k

7. एनजीआईएनएक्स में स्टेटिक कंटेंट कैशिंग अवधि समायोजित करें

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

जब कोई क्लाइंट स्थैतिक सामग्री का अनुरोध करता है, तो सर्वर सामग्री के कैश्ड संस्करण को प्रस्तुत करेगा। निम्नलिखित पंक्तियों को वर्चुअल होस्ट फ़ाइल में रखा गया है /etc/nginx/sites-available निर्देशिका:

स्थान ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
90d समाप्त हो रहा है;
}

यह कॉन्फ़िगरेशन फ़ाइलों को अंतिम ब्राउज़र एक्सेस समय से 90 दिनों तक कैश करेगा।

8. एनजीआईएनएक्स में ओपन फाइल कैश को सक्षम करें

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

में निम्नलिखित पंक्तियाँ जोड़ें एचटीटीपी खुली फ़ाइल कैश को सक्षम करने के लिए कॉन्फ़िगरेशन फ़ाइल में अनुभाग:

एचटीटीपी {
open_file_cache अधिकतम=1024 निष्क्रिय=10s;
open_file_cache_valid 60s;
open_file_cache_min_use 2;
open_file_cache_errors चालू;
}

इसकी कॉन्फ़िगरेशन फ़ाइलों को संशोधित करके एनजीआईएनएक्स का सर्वश्रेष्ठ लाभ उठाएं

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

NGINX कॉन्फ़िगरेशन फ़ाइलों में कॉन्फ़िगर किए गए मापदंडों को संशोधित करके जैसे nginx.conf और वर्चुअल होस्ट फ़ाइलें, आप सर्वश्रेष्ठ प्रदर्शन देने के लिए NGINX को हैक कर सकते हैं।