使用 Nginx 通过发送空行来防止下游超时



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

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

我看到了几种可能性:

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

相关内容

  • 没有找到相关文章

最新更新