deaktivieren Sie die Anfrage, die Pufferung in nginx
Scheint es, dass der nginx-Puffer-Anforderungen vor der übergabe an die updstream server,es ist zwar OK für die meisten Fälle ist es für mich sehr schlimm 🙂
Mein Fall ist so:
Ich habe nginx als frontend-server als proxy 3 verschiedenen Servern:
- apache mit einer typischen php-app
- shaveet(ein open-source-comet-server), das von mir mit python-gevent und
- eine Datei-upload-server gebaut, wieder mit gevent Sie, dass die Stimmrechtsvertreter der uploads zu rackspace cloudfiles
während die Annahme der upload vom client.
#3 das problem ist jetzt, was ich habe, ist, dass nginx alle Puffer die Anfrage und sendet dann, dass die Datei-upload-server, der wiederum sendet Sie an cloudfiles, anstatt jedes Teil, wie Sie es bekommt (die machen das schneller hochladen wie kann ich push-6-7MB/s cloudfiles).
Dem Grund verwende ich nginx ist auf 3 verschiedene domains mit einer IP, wenn ich das nicht kann, werde ich zu bewegen, die fileupload-server zu einer anderen Maschine.
- nur damit jeder weiß,nach ppl in #nginx und #lighttpd es ist nicht möglich, Anforderung deaktivieren Sie die Pufferung für beide 🙁
- Für Ihre #3, haben Sie die http-server-integrierte Unterstützung gevent < 1.0? Die neuesten gevent nicht über-http-Unterstützung, nur wsgi, so Frage ich mich, was zu verwenden. Ich denke, ich kann verwenden, Django...
- Wenn Sie server zugeordnet werden können, mehrere IPs, dann ist es möglich zu binden dedizierte upload-server die zweite IP. Folge ist, dass Sie brauchen, separaten host-Namen für Sie, und dies kann zu cross-domain-policy-Probleme auf client.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut Gunicorn, Sie schlage vor, Sie verwenden nginx tatsächlich Puffer Kunden und verhindern slowloris-Angriffe. Also diese Pufferung ist wahrscheinlich eine gute Sache. Jedoch, ich sehe eine option, die weiter unten auf diesem link, den ich zur Verfügung gestellt, wenn es Gespräche über das entfernen der proxy-Puffer, es ist nicht klar, ob diese sich innerhalb von nginx oder nicht, aber es sieht aus, als ob es ist. Natürlich ist dies unter der Annahme, haben Sie Gunicorn laufen, was Sie nicht tun. Vielleicht ist es noch nützlich für Sie.
EDIT: ich habe einige der Forschung, und dass Puffer deaktivieren Sie in nginx ist für Ausgangs -, long-polling-Daten. Nginx Staaten auf Ihre wiki Website, die eingehenden Anfragen werden gepuffert, bevor Sie gesendet upstream.
Sobald diese [1] - feature implementiert ist, Nginx wird als reverse proxy ohne Pufferung für uploads (bug-client-Anforderungen).
Es landen sollte, in 1.7 was ist die aktuelle mainline.
[1] http://trac.nginx.org/nginx/ticket/251
Update
Diese Funktion ist seit 1.7.11 über die Flagge
proxy_request_buffering on | off;
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_request_buffering
Nun in nginx seit version nginx-1.7.11.
Siehe Dokumentation
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_request_buffering
Zur Pufferung deaktivieren der upload angeben
Ich würde schauen in haproxy, dieses Bedürfnis zu erfüllen.