文档说明不应该在与Django项目相同的机器上服务静态文件,因为静态内容会使Django应用程序无法使用内存。这个问题是否也来自于在一台服务器上安装多个Django项目?我应该将所有网站项目合并到一个非常大的Django项目中吗?
我目前正在使用mod WSGI为Apache提供来自Apache的PHP脚本。这是否也会导致效率下降?
或者警告是否仅适用于静态内容,因为在提供数百个文件时出现问题,而提供20-30个不同的PHP / Django项目是可以的?
答案 0 :(得分:2)
我会说这个设置完全没问题。当然,这取决于硬件,负载和其他项目。但在这里你可以尝试监控使用/性能 将不同服务器用于静态文件的建议是有道理的,因为它对于资源更有效。但只要一台服务器运行良好,我就没有理由使用第二台服务器。
另一个问题 - 与性能关系不大,而不是易用性/配置 - 决定了你是否真的想要在同一台服务器上运行所有东西。
对于一组较小的网站(以及一些php-legacy),我们使用一台机器和四台虚拟服务器:
nginx处理所有站点,代理应用程序服务器或提供静态内容(通过nas)。我喜欢这种设置,因为它非常易于安装和处理,并且如果需要,它可以很容易地缩小一件。卜
答案 1 :(得分:0)
如果文档说“”“不应该在与Django项目相同的机器上服务静态文件,因为静态内容会将Django应用程序从内存中踢出来”“”然后文档非常误导并且可能是错误的
如果在同一系统上使用PHP,我会提出的一个建议是确保使用mod_wsgi守护程序模式运行Python Web应用程序,甚至每个Python Web应用程序使用一个守护进程。
不要在嵌入模式下运行Python Web应用程序,因为这意味着您在与mod_php相同的进程中运行东西,并且因为包含扩展的PHP实际上并不是多线程安全的,这意味着您必须运行prefork MPM。在运行prefork MPM时运行嵌入在Apache中的Python Web应用程序是一个坏主意,除非您非常清楚如何正确地为它设置Apache。不要设置Apache,你会遇到如下所述的问题:
http://blog.dscpl.com.au/2009/03/load-spikes-and-excessive-memory-usage.html
缺点是PHP和Python的Apache配置需要完全不同。您可以通过对Python Web应用程序使用mod_wsgi守护程序模式来解决这个问题。