【问题标题】:Django doesn't respond on some requests after deployment on server在服务器上部署后,Django 对某些请求没有响应
【发布时间】:2017-07-02 15:30:23
【问题描述】:

在使用 gunicorn 部署到服务器后,我的 Django 应用程序出现了一些奇怪的行为。

首先,我使用 runit 工具(当然是 linux)将脚本添加到 upstart。并看到我的服务器根据需要响应请求。也许它应要求作出回应,也许不是。

我很震惊,因为我本地机器上的相同配置可以正常工作。

所以,我决定从 upstart 中删除脚本,并尝试在本地机器上运行它,使用我从 runit upstart 中删除的相同脚本。结果更好,它响应了 95% 的 ajax 调用,但仍然无法正常工作。

来自 chrome 网络监控的屏幕。

10 秒,接受简单的 stop/url 请求。我从未见过,当应用程序部署在服务器上时,该服务器会在 start/url 上响应客户端。

有来自我本地机器的屏幕,来自 Chrome 网络监控。

我在谷歌计算引擎上运行应用程序,所以我认为服务器没有足够的性能。但这是错误的。机器类型的变化没有影响。

然后,我决定看一下日志和代码。在回复之前我写了这几行代码:

log.info('Start activity for {}'.format(username))
return HttpResponse("started")

我可以在日志中看到它。但它仍然没有响应。

我仍然无法理解发生了什么。这让我抓狂。

【问题讨论】:

    标签: python django debian google-compute-engine gunicorn


    【解决方案1】:

    每个人。

    我通过以下方式解决了这个问题:

    1. 将所有脚本更改为缩小版本 (*.js -> *.min.js)
    2. django.middleware.http.ConditionalGetMiddleware添加到中间件
    3. 在设置中添加SESSION_COOKIE_DOMAIN = ".yourdomain.com"

    也许对某人有帮助。

    【讨论】:

      猜你喜欢
      • 2017-11-20
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 2015-10-28
      • 1970-01-01
      • 2013-06-02
      • 2018-07-30
      • 1970-01-01
      相关资源
      最近更新 更多