在 Serverless SSR 控制台中,新建应用时可以选择是否启用高级配置,以实现对应用访问的优化。 本文主要对默认优化和建议优化的配置项进行说明
默认优化
node_modules 拆分为层
Next.js 和 Nuxt.js 项目的 node_modules 会比较大,项目稳定后,部署不需要每次都更新 node_modules。
把 node_modules 部署为层,每次部署只需要上传业务代码,部署会快很多。
更新 node_modules 的层时,建议使用
npm install --production
安装依赖包,减少代码包体积,加快部署和启动速度。点击查看 层部署指引 >>
启用静态资源托管
Next.js 应用默认会把
.next/static
目录和 public 目录下的所有文件启用静态资源托管。 把静态内容( HTML、JavaScript、CSS、图像、视频等文件)托管到 COS,不占用云函数的访问资源,成本更低,访问速度更快。
点击查看 静态资源托管改造 >>
建议优化
CDN 加速
前提条件
启用 CDN 加速必须使用您已经在腾讯云备案的自有域名,详情请参见 备案指引。
设置自定义域名,需要在域名管理设置一条 CNAME 记录,指向配置的对象存储的二级域名。
更多 COS 设置 CDN 加速域名的说明请参见 COS 域名管理。
配置指引
控制台配置
创建应用时,您可以直接在高级配置里开启 CDN 加速,填入您已备案且配置好解析的域名,完成 CDN 域名加速的配置。
本地配置
在
serverless.yml
文件中,inputs 字段里增加以下配置内容,完成 CDN 加速域名的配置。 org: orgDemoapp: appDemostage: devcomponent: nextjsname: nextjsDemoinputs:# 此处省略....# 静态资源相关配置staticConf:cosConf:# 这里是创建的 COS 桶名称bucket: serverless-nextjscdnConf: # CDN 加速配置domain: static.test.comhttps:certId: abcdefg
修改配置文件 next.config.js(nuxt.js 项目为 nuxt.config.js),将 STATIC_URL 参数改为您的自定义域名,以 next.js 为例:
const isProd = process.env.NODE_ENV === 'production';const STATIC_URL ="static.test.com";module.exports = {env: {STATIC_URL: isProd ? STATIC_URL : '',},assetPrefix: isProd ? STATIC_URL : '',};
完成修改后,重新部署,即可完成 CDN 加速域名的配置。
sls deploy
自定义域名
前提条件
系统默认会给应用分配一个二级域名,您可以通过绑定自有域名,用自有域名访问应用。
自定义域名必须是已经在腾讯云备案的域名,目前,腾讯云已推出 Serverless 备案资源包,帮您快速完成 ICP 备案,详情请参考 ICP 备案。
设置自定义域名需要在域名管理配置一条 CNAME 记录,指向系统分配的二级域名。 详情请参考 配置自定义域名。
配置指引
控制台配置
创建应用时,您可以直接在高级配置里开启自定义域名,填入您已备案且配置好解析的域名,完成自定义域名的配置。
建议您 手动配置域名解析,您也可选择自动配置,勾选"自动配置CNAME"时,Serverless SSR 会尝试自动为您配置域名的 CNAME 解析,一般需要5 - 10分钟生效,您可以在 域名解析控制台 查看解析结果,或手动配置解析。
本地配置
在 serverless.yml 文件中,inputs 字段里增加以下配置内容,完成自定义域名的配置。
org: orgDemoapp: appDemostage: devcomponent: nextjsname: nextjsDemoinputs:# 此处省略....# 自定义域名相关配置customDomains:- domain: test.comcertificateId: abcdefg # 证书 ID# 这里将 API 网关的 release 环境映射到根路径pathMappingSet:- path: /environment: releaseprotocols:- https
完成修改后,重新部署,即可完成自定义域名的配置。