让Apache将它传递给Django的前阅读所有发布的数据(Make apache read all

2019-10-18 12:09发布

我已经安装Linux服务器与Apache和mod_wsgi的。 从我的Apache配置:

WSGIDaemonProcess myapp processes=1 threads=10

这里的myapp是一个Django的web应用。 当MyApp的接收从Apache的在Django HttpRequest对象大的HTTP POST请求,访问发布数据的拳头时间花费的时钟时间几秒钟。 我想这是因为myApp为POST的全身是从网络读取之前和访问的HttpRequest对象块的发布数据,直到发布的数据被读取调用。

有没有办法不具有MYAPP调用直到阿帕奇读取了所有已发布数据?

我问,因为我想调线程的,什么是最优化在MYAPP并行处理的数量(在本例中10)。 因此,我不想花时间在这些要求上只是等待从网络接收发布的数据。

我知道我可能会增加线程数超过10,并实施另一种机制,以确保在10个线程同时处理。

Answer 1:

如何大是大?

如果是非常大的,那你就有被吹出来的内存使用情况,如果出了什么预甚至交给受Web应用程序前阅读这一切到内存中。 无论如何,存在的Apache / mod_wsgi的没有办法做这样的预读。

使用nginx的,如阿帕奇/ mod_wsgi的前代理可以帮助从慢HTTP客户端隔离了Apache,Nginx的,但只预读取之前代理的请求内容大小可达1MB。 允许在大的请求内容大小预读和缓冲,然后你必须提到担心内存的使用情况。

你应该做的也许是那些卸载特定的URL nginx的与上传管理器来处理。 例如:

  • http://www.grid.net.ru/nginx/upload.en.html


文章来源: Make apache read all posted data before passing it on to Django