由于我一直在寻找一些更深入的答案,因此我决定自己进行深入研究。如果我有误解,请告诉我。
一些一般性建议是使用单独的Web服务器来处理媒体。单独来说,我指的是未运行Django的网络服务器。该服务器可以是例如:
然后,对于Django,您可以走不同的道路。您可以:
通过 服务Django,并:
这是稳定且推荐/充分记录的方式。缺点:占用大量内存。
* **mod_wsgi**
据我了解,mod_wsgi是一个较新的替代方案。在资源上似乎更快,更容易。
* **mod_fastcgi**
使用FastCGI时,您将Django的服务委托给另一个进程。由于mod_python在每个请求中都包含python解释器,因此它会占用大量内存。这是绕过该问题的一种方法。此外,还有一些安全问题。
您要做的是,在一个单独的进程中启动Django FastCGI服务器,然后通过重写配置apache以在需要时调用此进程。
或者您可以:
(文档中提到,如果您没有Apache的特定需求,则可以执行此操作。我想原因一定是为了节省内存。)
* **Lighttpd**
这是运行Youtube的服务器。它似乎快速且易于使用,但是我见过有关内存泄漏的报告。
* **Nginx的**
我见过一些基准测试声称该服务器比lighttpd还要快。虽然它主要是用俄语记录的。
另一件事,由于Python的限制,您的服务器应以分叉模式而不是线程模式运行。
所以这是我目前的研究,但我需要更多的见解和经验。