我使用 nginx http 缓存了一个 wordpress 博客,超过 99% 的请求缓存了该博客,缓存寿命为 2 天。下面是网站的网页。网页包含大量图片,因此加载延迟。页面平均大小仅为 1 mb。
响应大小中位数为 10 KB
使用 speedcurve,我的 TTFB 中值为 0.6 秒
为什么这么高?
我支持 cloudflare,并且所有静态资产(例如 JS、CSS 和图像)均由 cloudflare 进行版本控制和缓存。
我的 nginx 配置有
sendfile on;
# https://forum.nginx.org/read.php?2,280434,280434#msg-280434
tcp_nopush on;
tcp_nodelay on;
#https://support.cloudflare.com/hc/en-us/articles/212794707-General-Best-Practices-for-Load-Balancing-at-your-origin-with-Cloudflare
#https://www.nginx.com/blog/tuning-nginx/
keepalive_timeout 300s;
keepalive_requests 10000;
我也有
initcwnd 设置为 10,initrwnd 设置为 10,ipv4.tcp_slow_start_after_idle=0
以下是 cloudflare 报告的从 CF 到原点的响应时间
静态网站也是在两台机器上实现负载平衡。一个在弗里蒙特,一个在孟买,使用 Cloudflare 进行地理路由。
为什么我的 TTFB 这么长?我该怎么做才能缩短它?
答案1
答案2
跳过 Cloudflare 后,您是否会得到相同的结果?在本地执行时如何ab
?即使连接很稳定,我的 TTFB 也只有约 200ms。可能只是在 Cloudflare 边缘和您的源之间进行连接,由于距离的原因,就需要这么多时间。
您可以打开全页缓存,这将立即改善您的 TTFB。