【问题标题】:How to avoid first byte timeout with nginx如何避免使用 nginx 的第一个字节超时
【发布时间】:2017-01-10 01:20:01
【问题描述】:
我在 RubyOnRails 中有一个应用程序,由位于 CDN 服务后面的 NGINX 服务器代理。 CDN有一个限制,如果响应的第一个字节在60秒内没有到达,CDN服务器会响应:
Error 503 first byte timeout
问题是我确实有一些请求需要超过 60 秒才能在 Rails 端处理。有没有办法破解响应,在响应完成处理之前发送几个字节?怎么样?
【问题讨论】:
标签:
ruby-on-rails
nginx
proxy
cdn
【解决方案1】:
鉴于这将存储在 CDN 上,我们可以假设这是公共内容,因此,在这种情况下,这是一个非常长的请求周期。您的目标应该是将公开请求控制在 1 秒以内。
一种选择是使用带有“推送区域”的 CDN,这样您就可以尽可能慢地生成内容,然后将内容推送到 CDN 以存储在用户附近。这是假设有少量固定资源,而不是具有大量参数的动态内容。
除此之外,我会研究通过缓存等优化响应时间的方法。