首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >怪异的Next.js TTFB问题

怪异的Next.js TTFB问题
EN

Stack Overflow用户
提问于 2018-12-04 15:31:47
回答 1查看 1.5K关注 0票数 9

我们在码头运行Next.js。

在本地构建映像并使用生产后端时,TTFB实际上为零,但在某些情况下,当我们部署此映像时,TTFB可能高达30秒。

生产服务器是不需要分拆的温暖服务器。

我运行了四个测试来测量TTFB与相同的生产后端的相同路线。

  1. 有码头的本地生产模式
  2. 基于yarn build && yarn start的局部生产模式
  3. 在本地开发模式下使用yarn run dev
  4. 论生产

在测试生产模式时,无论是进出码头,TTFB几乎为零。

在开发模式下进行本地测试时,TTFB几乎与生产相同。

我已经投入生产,并确认没有安装dev包,所以我认为我们不可能在dev模式下运行。

我希望TTFB的生产更接近我们在当地的体验。

是什么原因导致了本地和生产之间的差异?

Dockerfile

代码语言:javascript
复制
FROM node:10.13.0-alpine

WORKDIR /app

EXPOSE 8080

CMD [ "yarn", "start" ]

COPY . .

RUN yarn install

RUN yarn build

server.js片段

代码语言:javascript
复制
const express = require('express');
const next = require('next');
const cookieParser = require('cookie-parser');
const jwtDecode = require('jwt-decode');
const { join } = require('path');
const admin = require('firebase-admin');

// serviceAccount used for local development
// https://firebase.google.com/docs/admin/setup
const path = require('path');
const { fetchNewToken } = require('./src/services/Firebase');

let serviceAccount;
const dev = process.env.NODE_ENV !== 'production';
if (dev) {
  serviceAccount = require('./credentials/serviceAccountKey.json')
}
admin.initializeApp({
  credential: dev ? admin.credential.cert(serviceAccount) : admin.credential.applicationDefault(),
});

const app = next({ dev });

package.json片段

代码语言:javascript
复制
  "scripts": {
    "start": "NODE_ENV=production node server.js",
    "build": "next build",
    "dev": "NODE_ENV=development node server.js",
  },
EN

回答 1

Stack Overflow用户

发布于 2022-07-18 03:43:39

有两件事需要检查。

  • 负载平衡器出现在我的脑海中,仿佛新的图像不是在“应该”的情况下就活下来的。
  • 如果生产当时正在为请求提供服务,则直到所有现有请求都完成后,新映像才会运行。

即使在新图像出现了一段时间之后,每个请求都有问题吗?就像在做某种安全检查?

NextJS是否正在向第三方提供商呼叫idk图像压缩或某些

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53616324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档