【问题标题】:most widely used python web app deployment style最广泛使用的 Python Web 应用程序部署风格
【发布时间】:2011-06-02 07:42:04
【问题描述】:

我想知道哪个选项更稳定(撇开性能不谈)并且使用更广泛(我假设广泛使用的选项最稳定):

  • apache -> mod_wsgi
  • apache -> mod_fcgid
  • apache -> mod_proxy_ajp
  • apache -> mod_proxy_http

对于将通过小型 json 格式的输入和输出消息和网页提供 REST 服务的项目,最高 100 个请求/秒。如果你觉得 nginx 等更合适,请评论 apache。

谢谢。

【问题讨论】:

  • 如果使用最广泛的仍然是 cgi-bin,我不会感到惊讶。广泛使用并不能使它成为最好的。 (我想它是稳定的)

标签: python apache nginx wsgi fastcgi


【解决方案1】:

如今达到 100 次请求/秒并不难。

考虑您的框架推荐的部署。例如,Zope 内置了一个不错的网络服务器,所以 mod_proxy_http 是很好的部署。

自从wsgi问世以来,它已经成为许多框架的首选机制,现在它们内置的web服务器只适合开发。

无论您现在部署什么,重要的是能够根据需要切换/添加堆栈的某些部分 - 您是否想要在某个地方为静态内容提供反向代理?如果您使用 nginx,则可能不需要它,因为它可以很好地提供来自 memcached 的静态内容。

总结:使用wsgi

【讨论】:

  • 是的,我想我也可以使用 apache。对于 wsgi,您是否建议直接使用 mod_wsgi 或 fcgi 和 flup ?我不知道为什么,但我感觉 mod_wsgi 还不够成熟。我可能完全错了。
  • @mete,mod_wsgi 一次运行好几个月至少。我在使用它时没有发现任何问题。如果您发现某种特定类型的内容无法正常工作,您总是可以让 apache 将这些 url 重写到不同的处理程序
  • @mete,对于新开发,使用 Flup 没有意义。在现有框架之一上构建您的系统 - Django、web2py、pylons 等。
  • 好的。谢谢推荐。哪个更好,将单个服务映射到 apache 中的单个 wsgi 实例或在 wsgi 实例内进行映射?
【解决方案2】:

apache -> mod-wsgi 目前是“推荐”的解决方案。但这也很大程度上取决于您的需求。

运行 1 个重型应用程序与 1 个轻型应用程序或许多轻型应用程序之间存在很大差异。

我个人首选的设置仍然是 nginx -> apache -> mod_wsgi 为重型站点配备多个 apache 服务器。

【讨论】:

  • 感谢您的回答。 apache前面的nginx是做什么的?对于静态文件?
  • @mete,nginx 可以做基本的负载均衡
  • @mete:简单的负载平衡、故障转移和静态文件。
猜你喜欢
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
  • 2011-07-26
  • 1970-01-01
  • 2019-05-20
相关资源
最近更新 更多