2012-04-05 12 views
1

Ich versuche ein Problem mit Uploads in unserer Web-Infrastruktur zu lösen.Gepuffertes Hochladen über HTTP Proxy

Wenn ein Benutzer Medien auf unsere Website hochlädt, wird er (über unsere Web-Proxy-Ebene) an ein Java-Back-End mit einer begrenzten Anzahl von Threads weitergeleitet. Wenn ein Benutzer eine langsame Verbindung oder einen großen Upload hat, hält dies einen der Java-Threads lange geöffnet, wodurch die Gesamtkapazität reduziert wird.

Um dies zu minimieren, möchte ich einen 'Upload-Proxy' implementieren, der die gesamten HTTP-POST-Daten des Uploads akzeptiert und nur wenn er alle Daten erhalten hat, wird dieser POST schnell an das Java-Backend weitergeleitet. das Problem, dass der Upload-Thread für einen HTTP-Proxy offen gehalten wird.

Zuerst fand ich Apache Traffic Server hat ein 'buffer_upload' Plugin, aber es scheint ein bisschen blutig und hat keine Unterstützung für Regex in URLs, obwohl es die meisten meiner Probleme lösen würde.

Kennt jemand ein Proxy-Produkt, das in der Lage wäre zu tun, was ich vorschlage (abgesehen von Apache Traffic Server)?

Ich sehe, dass Nginx ziemlich detaillierte Puffereinstellungen für die Proxyfunktion hat, aber es scheint nicht (aus docs/Erklärungen) auf den gesamten POST vor dem Öffnen einer Back-End-Verbindung/Thread zu warten. Habe ich das richtig?

Prost,

Tim

Antwort

0

Eigentlich nginx immer Puffer-Anforderungen, bevor sie eine Verbindung zum Back-End-Öffnung. Es ist möglich, die Antwortpufferung unter Verwendung von proxy_buffering zu deaktivieren oder einen X-Accel-Buffering-Antwortheader für die pro-Response-Pufferungssteuerung festzulegen.