
Proxy HTTP modificabile per test di resilienza e condizioni di rete simulate
Non mantenuto attivamente, potrebbe non funzionare con le ultime versioni di node.js. Se sei interessato a mantenere toxy, apri una issue.
Proxy HTTP hackerabile per simulare scenari di guasto del server, test di resilienza dei sistemi e condizioni di rete impreviste, costruito per node.js.
È stato progettato principalmente per test di resistenza ai guasti, dove toxy diventa particolarmente utile per coprire le capacità di tolleranza ai guasti e resilienza di un sistema, specialmente in reti tolleranti ai ritardi e architetture orientate ai servizi, dove toxy può agire come proxy MitM tra i servizi per iniettare guasti.
toxy ti permette di collegare veleni, opzionalmente filtrati da regole, che possono essenzialmente intercettare e alterare il flusso HTTP come necessario, eseguendo molteplici azioni malvagie nel mezzo di quel processo, come limitare la larghezza di banda, ritardare i pacchetti di rete, iniettare latenza di jitter di rete o rispondere con un codice di errore o stato personalizzato. Opera principalmente a L7, sebbene possa simulare condizioni di rete L3.
toxy può essere utilizzato fluentemente a livello di programmazione o tramite API HTTP. È stato costruito sopra rocky, un proxy HTTP completo orientato al middleware, ed è anche integrabile in connect/express come middleware standard.
Richiede node.js +4.
Esistono altre soluzioni simili a toxy sul mercato, ma la maggior parte non fornisce un adeguato controllo programmatico e di solito non sono facili da hackerare, configurare o sono direttamente chiuse all'estensibilità.
Inoltre, la maggior parte di queste soluzioni opera solo a livello TCP L3 invece di fornire astrazioni di alto livello per coprire requisiti comuni nel dominio specifico e nella natura del protocollo HTTP L7, come toxy cerca di fornire.
toxy offre una soluzione potente, hackerabile ed estensibile con un'astrazione conveniente, ma senza perdere le capacità di interfaccia di basso livello per gestire facilmente le primitive del protocollo HTTP.
toxy è stato progettato basandosi sui principi di composizione, semplicità ed estensibilità. Attraverso il suo strato middleware gerarchico specifico del dominio integrato, puoi facilmente estendere le funzionalità di toxy alle tue esigenze.
toxy introduce due direttive: veleni e regole.
Veleni sono la logica specifica che infetta una transazione HTTP in entrata o in uscita (ad esempio: iniettare una latenza, rispondere con un errore). Una transazione HTTP può essere avvelenata da uno o più veleni, e questi veleni possono anche essere configurati per infettare il traffico a livello globale o di rotta.
Regole sono una sorta di filtri di convalida di corrispondenza che ispezionano una richiesta/risposta HTTP per determinare, date determinate regole, se la transazione HTTP deve essere avvelenata o meno (ad esempio: se le intestazioni corrispondono, parametri di query, metodo, corpo...). Le regole possono essere riutilizzate e applicate sia al flusso di traffico in entrata che in uscita, inclusi diversi ambiti: globale, di rotta o di veleno.