worker_connections बढ़ाने से पहले NGINX प्रॉक्सी सॉकेट का बजट तय करें
प्रॉक्सी कनेक्शन आम तौर पर क्लाइंट और अपस्ट्रीम दोनों सॉकेट लेता है; वर्कर की कनेक्शन सीमा को सेवा की फ़ाइल-डिस्क्रिप्टर सीमा से अलग समझें।
लंबे समय तक चलने वाला प्रॉक्सी कनेक्शन आम तौर पर दो सॉकेट लेता है: क्लाइंट का और अपस्ट्रीम का। worker_connections दोनों पक्ष गिनता है। इसलिए इसे worker_processes से गुणा करने पर प्रॉक्सी उपयोगकर्ताओं को क्षमता का कोई वादा नहीं मिलता।
कनेक्शन विफल होने पर बताई गई सीमा का पालन करें:
| साक्ष्य | जाँची जाने वाली सेटिंग या प्रोसेस स्थिति |
|---|---|
| worker_connections का खत्म होना | वर्कर का कनेक्शन बजट, अपस्ट्रीम सॉकेट सहित |
| ऑपरेटिंग सिस्टम का “बहुत अधिक फ़ाइलें खुली हैं” संदेश | वास्तविक सेवा प्रोसेस को विरासत में मिलने वाली फ़ाइल-डिस्क्रिप्टर सीमा |
सुनने वाले सॉकेट, लॉग और अन्य खुली फ़ाइलें भी डिस्क्रिप्टर खर्च करती हैं। कनेक्शन का पुन: उपयोग और ट्रैफ़िक का मिश्रण उपयोगकर्ताओं और सॉकेट के बीच संबंध बदलते हैं।
worker_rlimit_nofile परिवेश की अनुमतियों के अधीन वर्कर सीमाएँ समायोजित करता है। systemd यूनिट LimitNOFILE सेट कर सकती है; इंटरैक्टिव शेल का ulimit चल रही सेवा नहीं बदलता।
कार्यभार के अनुसार सीमाएँ तय करें और देखें कि उन्हें कौन खर्च करता है। अप्रत्याशित क्लाइंट या बार-बार विफल होने वाले अपस्ट्रीम कनेक्शन पहले पर्याप्त रहे बजट को खत्म कर सकते हैं। बड़ी प्रोसेस संख्या या मेमोरी सीमा डिस्क्रिप्टर की कमी नहीं सुधारती।