这是我第一次使用 nginx/gunicorn 设置 Web 服务器,所以如果我的 TTFB 如此之高有什么明显的原因,我会道歉。
根据 gtmetrix.com,我的 TTFB 为 1.4 秒:
在我自己的测试中,我的 TTFB 约为 1.3 秒。
我对它为什么这么高感到困惑,即使我启用了 Brotli、缓存(静态和媒体文件)、Http2,我启用了 html 缩小器,所以我不知道为什么。我的服务器是纽约市 Digital Ocean 上的 2GB CPU(靠近我所在的地方),所以位置不是问题。我已经检查了这个堆栈溢出问题,但是删除 django-htmlmin 包仍然有很高的 ttfb。我在这个页面上的 Django 视图只是:
@minified_response
def home(request):
context = {
'posts': Post.objects.all()
}
return render(request, 'blog/home.html', context)
我认为这是一个简单的查询,我不认为 TTFB 仅仅为了这个 get 查询就这么高。我的数据库有问题吗(现在我正在使用 sqlite)?如果您需要我的任何其他文件或东西来帮助我调试,请告诉我。
另外,根据 Cloudflare 的这篇文章,我的 TTFB 很高,因为
在 CloudFlare,我们广泛使用 nginx,并且在研究 TTFB 时发现,在使用或不使用压缩时,TTFB 与 nginx 存在显着差异。网页的Gzip压缩大大减少了网页下载的时间,但压缩本身是有代价的。即使完整下载更快,该成本也会导致 TTFB 更大。
所以我尝试删除 Brotli,但 TTFB 仍然相当高,并且在 Nginx conf 文件中禁用 gzip 对 TTFB 没有帮助。
描述:在 Django(sqlite 数据库)上使用 Digitalocean NYC 2GB CPU 的 Nginx-Gunicorn 服务器
编辑:我停止使用 Cloudflare,因为我遇到了一些问题。