我在 EC2 小型实例(1.7 GB RAM)上运行我的应用程序的 alpha 版本,上面带有 postgres 和 apache(wsgi-mod 不是作为守护进程,而是直接作为守护进程)。
性能还可以,但可能会更好。如果有太多测试用户加入,我也担心内存使用情况。
从 Apache 切换到 nginx 服务器是否明智?是否有任何 Django 开发人员这样做并且对结果更满意?也欢迎任何其他提示。
谢谢
我在 EC2 小型实例(1.7 GB RAM)上运行我的应用程序的 alpha 版本,上面带有 postgres 和 apache(wsgi-mod 不是作为守护进程,而是直接作为守护进程)。
性能还可以,但可能会更好。如果有太多测试用户加入,我也担心内存使用情况。
从 Apache 切换到 nginx 服务器是否明智?是否有任何 Django 开发人员这样做并且对结果更满意?也欢迎任何其他提示。
谢谢
为什么不使用 mod_wsgi 的守护进程模式?如果您使用嵌入式模式,如果您不注意如何设置 Apache,那么您正在为内存问题设置自己。
去阅读:
http://blog.dscpl.com.au/2012/10/why-are-you-using-embedded-mode-of.html
还可以在以下位置观看我的 PyCon 演讲:
http://lanyrd.com/2012/pycon/spcdg/
还要修改您的问题并指出您正在使用哪个 Apache MPM 以及 MPM 设置是什么。
至于使用诸如 gunicorn 或 uWSGI 之类的替代方案,对于可比较的配置,内存要求并没有太大的不同,因为底层服务器不会决定使用多少内存,而是由您自己决定在其上运行的特定 Python Web 应用程序。一种常见的误解是,gunicorn 或 uWSGI 以某种方式神奇地解决了所有问题,而 Apache 却做不到。为 Python Web 应用程序正确设置 Apache,不要依赖其默认值,它与其他解决方案一样强大,并且可以根据您的要求提供更多的灵活性。
非常建议您进行一些监控,以找出真正的问题和瓶颈。
我的结果好坏参半。当应用程序快速、非阻塞时,nginx 以较小的内存占用表现良好。流量越大,收益越大。
我有几个速度较慢的 GIS 应用程序,在这种情况下,nginx 惨遭失败。我的建议是:不要在任何可能阻塞几秒钟的东西上使用 nginx + wsgi。