代码之家  ›  专栏  ›  技术社区  ›  d33tah

为什么*SGI+Nginx/HTTP被认为是部署web应用程序的最佳实践?

  •  1
  • d33tah  · 技术社区  · 6 年前

    runserver ,为什么它没有扩展为面向生产客户的HTTP服务器?人们所做的是建立一个 uwsgi

    据我所知,许多其他语言都使用这种模式:有一个用于开发的“简单”HTTP服务器,以及web服务器应该反向代理到的*GI(ASGI/WSGI/FCGI/CGI)接口。这些web服务器没有准备好生产,而是假定存在另一个web服务器的主要原因是什么?

    以下是我的一些理论,但我不确定是否遗漏了更重要的东西:

    • 历史:动态网站可以追溯到perl/PHP,两者都是作为一个“哑”CGI后端工作的,基本上是一个处理HTTP请求(stdin)到响应(stdout)的过滤器。这种架构运行了一段时间,成为一种常见的模式,
    • 性能:web应用程序通常是用非JIT语言编写的,使用这种语言编写web服务器会带来额外的开销,而毫秒很重要。同时,这也让我们加快了静态文件服务的速度,
    • 保安:Django's 显然被描述为潜在的不安全,根据 this quote

      不要在生产设置中使用此服务器。它没有经过安全审计或性能测试。(这就是它将如何留下来。

    最后一点似乎表明,编写一个生产就绪的HTTP服务器过于复杂,无法满足Django的目标,需要支持什么样的边缘情况才能达到目的?

    1 回复  |  直到 6 年前
        1
  •  2
  •   David S    6 年前

    因为他们不想涉足web服务器业务,我认为这是一个明智的决定。

    runserver ).

    与其重新发明轮子,他们宁愿把它留给那些做得最好的人。它们不太可能通过作为支持运行Django应用程序的辅助项目来匹配适当web服务器的稳定性和功能。他们最好把时间花在让Django更好上。