【问题标题】:Use Nginx to prevent downstream timeout by sending blank lines使用 Nginx 通过发送空行来防止下游超时
【发布时间】:2016-01-19 03:54:39
【问题描述】:

我们有一个设置,其中 CDN 正在调用 Nginx,而 Nginx 正在调用 uwsgi 服务器。有些请求需要 Django 处理很多时间,所以我们依赖 CDN 进行缓存。但是,CDN 有 30 秒的硬超时,很遗憾,这是不可配置的。

如果我们能够在从 uwsgi 服务器收到请求之前每隔几秒发送一个空行,这意味着 CDN 不会超时。有没有办法用 Nginx 每隔几秒发送一个空行,直到收到响应?

【问题讨论】:

    标签: django nginx timeout cdn


    【解决方案1】:

    我看到了一些可能性:

    1. 更新您的 Django 应用程序,使其以这种方式工作 - 让 /it/ 立即开始运球响应。
    2. 重新设计您的设计以避免用户周期性地收到需要超过 30 秒才能响应的请求。使用频繁的 cron 作业来填充后端服务器上的缓存,因此当 CDN 请求资产时,它们已经准备就绪。可以将 Web 服务器配置为检查 URL 的静态“.gz”版本,这可能很适合这里。
    3. 配置 Nginx 以缓存请求。 CDN 第一次请求慢速 URL 时,可能会超时,但 Nginx 最终还是应该缓存结果。下次 CDN 询问时,Nginx 应该准备好缓存的响应。

    【讨论】:

      猜你喜欢
      • 2013-04-08
      • 1970-01-01
      • 2016-12-31
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 2010-10-08
      相关资源
      最近更新 更多