2013-07-08 16 views
6

पर प्रति आईपी के साथ एक साथ कनेक्शन की सीमा संख्या हम बैकएंड के रूप में एक एप्लिकेशन सर्वर के साथ nginx का उपयोग करते हैं।Nginx: बैकएंड

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

क्या एनजीएक्सएक्स के साथ बैकएंड सर्वर पर प्रति आईपी के साथ एक साथ कनेक्शन की संख्या सीमित करना संभव है?

उत्तर

3

आप स्थापित करने के लिए

proxy_ignore_client_abort off; 

निर्धारित करता है एक प्रॉक्सी सर्वर से कनेक्शन बंद किया जाना चाहिए अगर एक ग्राहक प्रतिक्रिया की प्रतीक्षा करने के बिना एक कनेक्शन बंद कर देता है सकते हैं।

documentation

एक और सुझाव से

अनुरोध दर सीमित करने के लिए limit_req उपयोग करने के लिए है।

+0

Nginx dev टीम 'proxy_ignore_client_abort off' का उपयोग करने का सुझाव देती है। यह अब तक काम करता है। – Anton

0

मुझे डर है कि यह सुविधा अभी तक बॉक्स के बाहर nginx के लिए उपलब्ध नहीं है। Nginx FAQ

कई उपयोगकर्ताओं के अनुसार अनुरोध किया है कि Nginx बैकएंड प्रति अनुरोध (आमतौर पर एक करने के लिए) की संख्या को सीमित करने के लिए लोड संतुलन में एक सुविधा को लागू। इस के लिए समर्थन की योजना बनाई है, लेकिन यह आवेदन के हिस्से के प्रॉक्सी की जा रही

मुझे लगता है कि nginx-limit-upstream के लिए कुछ 3 पार्टियों मॉड्यूल को देखा है लेकिन मैं पर दुर्व्यवहार में निहित है इस सुविधा के लिए है कि मांग उल्लेख के लायक है मैंने कभी कोशिश नहीं की