
हैक करने योग्य HTTP प्रॉक्सी जो रेज़िलिएंसी परीक्षण और सिम्युलेटेड नेटवर्क स्थितियों के लिए है।
सक्रिय रूप से रखरखाव नहीं किया जा रहा है, नवीनतम node.js रनटाइम के साथ काम नहीं कर सकता। यदि आप toxy के रखरखाव में रुचि रखते हैं, तो कृपया एक मुद्दा खोलें।
हैक करने योग्य HTTP प्रॉक्सी जो सर्वर विफलता परिदृश्यों, सिस्टम लचीलापन परीक्षण और अप्रत्याशित नेटवर्क स्थितियों को सिम्युलेट करती है, node.js के लिए निर्मित।
यह मुख्य रूप से विफलता प्रतिरोध परीक्षण के लिए डिज़ाइन किया गया था, जब toxy किसी सिस्टम की दोष सहनशीलता और लचीलापन क्षमताओं को कवर करने के लिए विशेष रूप से उपयोगी हो जाता है, विशेष रूप से disruption-tolerant networks और service-oriented आर्किटेक्चर में, जहाँ toxy सेवाओं के बीच MitM प्रॉक्सी के रूप में कार्य कर सकता है ताकि विफलता इंजेक्ट कर सके।
toxy आपको poisons प्लग इन करने की अनुमति देता है, वैकल्पिक रूप से rules द्वारा फ़िल्टर किए गए, जो मूल रूप से आवश्यकतानुसार HTTP प्रवाह को इंटरसेप्ट और बदल सकते हैं, उस प्रक्रिया के बीच में कई बुरे कार्य करते हुए, जैसे बैंडविड्थ को सीमित करना, नेटवर्क पैकेट में देरी करना, नेटवर्क जिटर लेटेंसी इंजेक्ट करना या कस्टम एरर या स्टेटस कोड के साथ उत्तर देना। यह मुख्य रूप से L7 पर काम करता है, हालाँकि यह L3 नेटवर्क स्थितियों का अनुकरण कर सकता है।
toxy का programmatically या HTTP API के माध्यम से आसानी से उपयोग किया जा सकता है। यह rocky के ऊपर बनाया गया है, एक पूर्ण-सुविधा वाला मिडलवेयर-उन्मुख HTTP प्रॉक्सी, और यह connect/express में मानक मिडलवेयर के रूप में pluggable भी है।
node.js +4 की आवश्यकता है।
बाज़ार में toxy जैसे कुछ अन्य समान समाधान हैं, लेकिन उनमें से अधिकांश उचित प्रोग्रामेटिक नियंत्रण प्रदान नहीं करते हैं और आमतौर पर हैक करने, कॉन्फ़िगर करने में आसान नहीं होते हैं या सीधे विस्तारशीलता के लिए बंद होते हैं। इसके अलावा, उन समाधानों में से अधिकांश केवल TCP L3 स्तर के स्टैक पर काम करते हैं, बजाय HTTP L7 प्रोटोकॉल के विशिष्ट डोमेन और प्रकृति में सामान्य आवश्यकताओं को कवर करने के लिए उच्च-स्तरीय एब्स्ट्रैक्शन प्रदान करने के, जैसा toxy प्रदान करने का प्रयास करता है। toxy एक शक्तिशाली हैक करने योग्य और विस्तारणीय समाधान लाता है जिसमें एक सुविधाजनक एब्स्ट्रैक्शन है, लेकिन HTTP प्रोटोकॉल प्रिमिटिव से आसानी से निपटने के लिए उचित निम्न-स्तरीय इंटरफ़ेस क्षमताओं को खोए बिना। toxy को composition, सरलता और extensibility के नियमों पर आधारित डिज़ाइन किया गया है। अपने अंतर्निहित पदानुक्रमित डोमेन-विशिष्ट मिडलवेयर परत के माध्यम से आप अपनी आवश्यकताओं के अनुसार toxy सुविधाओं को आसानी से बढ़ा सकते हैं।
toxy दो निर्देश प्रस्तुत करता है: पॉइज़न और नियम।
पॉइज़न वह विशिष्ट तर्क है जो इनकमिंग या आउटगोइंग HTTP लेनदेन को संक्रमित करता है (उदा: लेटेंसी इंजेक्ट करना, एरर के साथ उत्तर देना)। एक HTTP लेनदेन एक या कई पॉइज़न द्वारा संक्रमित किया जा सकता है, और उन पॉइज़न को वैश्विक या रूट स्तर के ट्रैफ़िक दोनों को संक्रमित करने के लिए भी कॉन्फ़िगर किया जा सकता है।
नियम एक प्रकार के मिलान सत्यापन फ़िल्टर हैं जो यह निर्धारित करने के लिए HTTP अनुरोध/प्रतिक्रिया का निरीक्षण करते हैं कि दिए गए कुछ नियमों के अनुसार, HTTP लेनदेन को पॉइज़न किया जाना चाहिए या नहीं (उदा: हेडर मेल खाते हैं, क्वेरी पैरामीटर, विधि, बॉडी...)। नियमों का पुन: उपयोग किया जा सकता है और इनकमिंग और आउटगोइंग दोनों ट्रैफ़िक प्रवाहों पर लागू किया जा सकता है, जिसमें विभिन्न स्कोप शामिल हैं: वैश्विक, रूट या पॉइज़न स्तर।
↓ ( Incoming request ) ↓ ↓ ||| ↓ ↓ +-------------+ ↓ ↓ | Toxy Router | ↓ -> Match the incoming request ↓ +-------------+ ↓ ↓ ||| ↓ ↓ +--------------------+ ↓ ↓ | Incoming phase | ↓ -> The proxy receives the request from the client ↓ |~~~~~~~~~~~~~~~~~~~~| ↓ ↓ | ---------------- | ↓ ↓ | | Exec Rules | | ↓ -> Apply configured rules for the incoming request ↓ | ---------------- | ↓ ↓ | ||| | ↓ ↓ | ---------------- | ↓ ↓ | | Exec Poisons | | ↓ -> If all rules passed, then poison the HTTP flow ↓ | ---------------- | ↓ ↓ +~~~~~~~~~~~~~~~~~~~~+ ↓ ↓ / \ ↓ ↓ \ / ↓ ↓ +--------------------+ ↓ ↓ | HTTP dispatcher | ↓ -> Forward the HTTP traffic to the target server, either poisoned or not ↓ +--------------------+ ↓ ↓ / \ ↓ ↓ \ / ↓ ↓ +--------------------+ ↓ ↓ | Outgoing phase | ↓ -> Receives response from target server ↓ |~~~~~~~~~~~~~~~~~~~~| ↓ ↓ | ---------------- | ↓ ↓ | | Exec Rules | | ↓ -> Apply configured rules for the outgoing request ↓ | ---------------- | ↓ ↓ | ||| | ↓ ↓ | ---------------- | ↓ ↓ | | Exec Poisons | | ↓ -> If all rules passed, then poison the HTTP flow before send it to the client ↓ | ---------------- | ↓ ↓ +~~~~~~~~~~~~~~~~~~~~+ ↓ ↓ ||| ↓ ↓ ( Send to the client ) ↓ -> Finally, send the request to the client, either poisoned or not
## उपयोग
### स्थापना```
npm install toxy