【问题标题】:Django (alternative to "runserver")Django(替代“运行服务器”)
【发布时间】:2016-10-09 01:35:11
【问题描述】:

我试图弄清楚如何部署 django 网站,而不必在命令提示符下使用“运行服务器”方法。公司约有 30 人将在内部使用它,但文档指出 runserver 仅用于开发目的,不用于生产。

我查看了 MAMP、Apache、FastCGI 等。我发现自己质疑它需要的工作量,以及是否会推荐它。我的网络没有什么花哨的。几个文件、链接、Python 脚本等。

我觉得其他堆栈帖子没有很好地表达他们关于 django 基本“部署方法”的问题,这传播了各种各样的答案。

所以我的问题很具体:“最好推荐什么免费的内部 Web 服务器应用程序来处理一个 django 框架,该框架面对大约 30 个用户的流量,而不使用命令提示符下的 runserver 方法?”

让我知道如何修改这个问题以便更好地讨论。

【问题讨论】:

  • uWSGI + nginx 在本地服务器上,应该花费不到一个小时的时间来设置。
  • 内部网络服务器应用程序是什么意思?是否需要限制对本地 Intranet 的访问?
  • 是的,我愿意。我不希望其他人访问它,但公司内部的人除外。
  • 我喜欢 nginx 和 gunicorn。有很多关于如何设置的文章。但是您可能首先尝试使用 runserver,因为您的用户群很小(见下文)。如果它给您带来问题,请继续。

标签: python django deployment webserver localhost


【解决方案1】:

警告:我知道 OP 不想使用 runserver,我故意建议他可能应该这样做,因为缩放还不是问题,也没有理由为其他原因。

回答 不使用 runserver 是一个取决于规模的选择。一切都说(包括django文档警告不要在生产中使用runserver),您的情况确实不是生产设置。 Django 的 runserver 已经非常好,通常可以处理您打算处理的负载,如果不能,那么任何其他容器都不太可能帮助您(很可能您的代码有问题)。

您需要禁止除特定内容之外的主机:说出机器的主机名,或者只是 IP。你应该适当地设置ALLOWED_HOSTS

【讨论】:

  • ALLOWED_HOSTS 不限制客户端访问应用程序,这正是他所需要的。
  • 公平点,@JohnGordon。但问题不在于安全性或权限。我希望 OP 知道所涉及的安全问题,我也希望 OPs 应用程序是通过安全通道进行身份验证的应用程序。
  • 注:runserver 是单线程、单处理的,因此 XHR 可能会在没有任何迹象的情况下失败。
  • 接受的答案非常懒惰。设置 gunicorn 并以很少的成本避免许多问题(例如 XHR)是微不足道的。如果涉及大量静态资产,性能也很差。
猜你喜欢
  • 2016-05-16
  • 2011-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多