【问题标题】:Do I Really Need to Use A Server Application for Django?我真的需要为 Django 使用服务器应用程序吗?
【发布时间】:2016-06-08 17:18:14
【问题描述】:

到目前为止,我只是在我的本地主机中创建并运行了我的 Django 服务器,例如在我的另一台设备上设置基本服务器 Linux 发行版并进行测试等。

不过,我也听说过像 apache2nginx 这样的服务器应用程序。我想知道的是:我真的需要在生产中使用其中一个吗?我想购买(或租用?)一个 VPS 服务,然后在该服务器上部署(或发布?)我的项目。我头上的问题是:

  • 使用manage.py runserver 0.0.0.0:80 运行服务器意味着它不会使我的应用程序在全球范围内运行? 服务器应用程序(或任何其他应用程序)使其可以在外部访问?
  • 或者服务器应用程序只是需要更好的性能、优化等?

简单来说,为什么我需要使用apache2nginx 来部署我的项目?

【问题讨论】:

    标签: django nginx server apache2


    【解决方案1】:

    说来话长。简而言之:

    1. 在 localhost 上运行您的项目肯定不会使其在全球范围内都可访问,因为至少您的服务器需要一个公共地址,而不是本地地址。
    2. 老实说,使用 django 内置服务器在 pro 中运行站点不是问题。但是,正如您在docs 中看到的那样,强烈不建议这样做。为什么?因为它是专门为测试而开发的。它是用python编写的(对于Web服务器来说足够慢),不适合处理对服务器的多个查询,崩溃只是时间问题。当然,还有很多其他原因,例如缓存和访问设置、重定向等。

    【讨论】:

    • 是的。但是有一个误解:我想说服务器应用程序是否使项目可以全局访问。我不确定 Django 自己的 runserver 是否可以打开它。我想知道我是否购买了 VPS 并且没有安装服务器应用程序,即使我有一个公共 IP 地址,我也会无法访问。不过,你的第二点让我稍微明白了一点。
    • 当然,可以不使用 apache 或 nginx 而只使用内置服务器来运行 django 项目。
    • 对您的响应号 1 的小挑剔:使用 runserver 0.0.0.0:80 将打开服务器以侦听所有可用地址,而不是本地主机。所以只要机器有一个公开列出的 IP 地址,那么runserver 0.0.0.0:80 确实会公开它。
    • @Joseph 是的,你是对的,但老实说 0.0.0.0 不是 localhost 的保留地址,而是来自 127.0.0.0/8 网络的一个。所以我的意思不是 0.0.0.0 是地址。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 2021-07-18
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多