2013-06-14 5 views
5

Provare a utilizzare MITMProxy per inoltrare le richieste personalizzate dal browser Firefox, in modo che passino attraverso uno dei diversi proxy selezionati in fase di runtime. Sta funzionando troppo lentamente per i nostri scopi. Si prega di tenere presente che stiamo eseguendo questo in Python 2.7.Come inoltrare correttamente le richieste tramite proxy con MITMProxy?

Il processo è il seguente:

  1. Firefox invia richiesta al configurato MITMProxy.
  2. MITMProxy accetta la richiesta da Firefox e genera una richiesta requests e ottiene i dati dal server di destinazione tramite un determinato proxy (che non è controllato da noi e richiede l'autenticazione).
  3. La risposta dalla richiesta inoltrata dal proxy viene convertita in una risposta per il browser.
  4. MITMProxy restituisce i dati al browser.

La situazione sembra essere che questo processo è troppo lento, che a mio avviso potrebbe essere per una serie di motivi. Potrebbe essere che ci siano impostazioni abilitate che riducono le prestazioni (come ad esempio troppa registrazione, ad esempio), la procedura utilizzata non è quella giusta per il lavoro (totalmente plausibile) o qualcosa di completamente diverso.

Come possiamo rendere questa corsa più veloce?

Grazie mille! Tutti i suggerimenti saranno apprezzati!

+1

Cosa hai provato a capire dove si trova il collo di bottiglia della velocità? Hai provato a cronometrare ogni parte di esso? Può variare da una codifica scadente a una velocità di rete molto lenta fino a, in casi estremi, abbattere a "è un python, non C". –

risposta

0

In questo caso particolare, stavamo usando la funzione di script di MITMProxy, il che significava che ogni richiesta modificata veniva eseguita in modo sincrono (cioè, non potevamo usare il comportamento asincrono corretto). Questo naturalmente è diventato un problema una volta che abbiamo iniziato a usare gli script con più clienti.

Come @Puciek ha menzionato nel suo commento, si trattava più di un problema di progettazione che di un problema con la libreria.

+0

Come si esegue il passaggio 2? Sto cercando di risolvere questo problema esatto. Sarei molto felice se saresti disposto ad aggiornare la tua risposta per includerla mentre sto cercando di risolvere il problema. – Jonathan