Nuxt3支持两种主要的静态站点生成(SSG)和服务器端渲染(SSR)方式,这两种方式都有各自的优势
服务器端渲染(SSR)
nuxt build
- 更快的首次加载时间:SSR 可以在服务器端直接渲染出页面的 HTML,减少了客户端渲染的时间。 更好的
SEO:搜索引擎可以直接获取到渲染完成的 HTML 页面,提高了网站的搜索排名。 - 更好的性能表现:对于大型网站,SSR 可以减轻客户端的负担,提高页面的渲染性能。
静态站点生成(SSG)
npx nuxi generate
- 更快的加载速度:SSG 可以在构建时生成静态 HTML 文件,减少了服务器和客户端的压力,提高了页面加载速度。
- 更好的缓存和CDN支持:静态文件可以更好地进行缓存和CDN分发,提高了网站的可靠性和可扩展性。
更低的服务器成本:不需要动态服务器渲染,减少了服务器成本。
部署
Node.js 服务器
发现使用 Nitro 预设的 Node.js 服务器,以部署在任何 Node 托管上。
- 如果未指定或自动检测,则默认输出格式
- 仅加载所需的块来呈现最佳冷启动时序的请求
- 对于将 Nuxt 应用程序部署到任何 Node.js 托管非常有用
入口点
当使用 Node 服务器预设运行时nuxt build,结果将是启动准备运行的 Node 服务器的入口点。
终端
node .output/server/index.mjs
这将启动默认侦听端口 3000 的生产 Nuxt 服务器。
它尊重以下运行时环境变量:
- NITRO_PORT或PORT(默认为3000)
- NITRO_HOST或HOST(默认为’0.0.0.0’)
- NITRO_SSL_CERT并且NITRO_SSL_KEY- 如果两者都存在,这将以 HTTPS
模式启动服务器。在绝大多数情况下,除了测试之外,不应将其用于其他用途,并且 Nitro 服务器应在终止 SSL 的反向代理(例如
nginx 或 Cloudflare)后面运行。
PM2
PM2 (Process Manager 2) 是一种快速、简单的解决方案,用于在服务器或虚拟机上托管 Nuxt 应用程序。
要使用pm2,请使用ecosystem.config.cjs:
module.exports = {
apps: [
{
name: 'NuxtAppName',
port: '3000',
exec_mode: 'cluster',
instances: 'max',
script: './.output/server/index.mjs'
}
]
}
集群模式
使用Node.js集群 NITRO_PRESET=node_cluster模块来利用多进程性能。