Uma solicitação que leva mais de 60 segundos é uma quantidade significativa de tempo. Você pode querer rever sua inscrição. Um tempo de carregamento de página que pode levar muitos visitantes a sair da sua aplicação. Você pode querer considerar o carregamento dos dados de forma assíncrona, como com AJAX ou websockets.
O tempo até o primeiro byte é geralmente aplicado aos cabeçalhos, não ao corpo da resposta. O cliente deve estar recebendo os cabeçalhos desde o início. Tem certeza de que é o seu CDN que atende aos pedidos? O NGinx também irá expirar seus pedidos. Uma boa maneira de verificar é com o curl:
curl -I -H "Host: <domain>" http://<ip of proxy>/request/uri
(Use o IP real do seu proxy, não o IP do CDN)
A opção -I mostrará os cabeçalhos de resposta, assim você pode obter uma boa indicação de qual código de erro (se houver) está sendo retornado pelo nginx. Você também pode ver se está recebendo cabeçalhos de solicitação e quanto tempo demora, pois é a isso que tcp primeiro byte se refere.
Se você não estiver recebendo os cabeçalhos rapidamente, tente usar:
http {
tcp_nopush off;
tcp_nodelay on; # force socket to send buffer
}
Se você estiver recebendo um erro de tempo limite do gateway ou algo semelhante, tente as seguintes opções de configuração:
http {
keepalive_timeout 300;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
}