有奖捉虫:行业应用 & 管理与支持文档专题 HOT
在 Serverless SSR 控制台中,新建应用时可以选择是否启用高级配置,以实现对应用访问的优化。 本文主要对默认优化和建议优化的配置项进行说明

默认优化

node_modules 拆分为层

默认会把工程中的 node_modules 拆分为 层(layer)部署。简单来说,层就是把项目中不经常变更的部分独立出来,云函数运行时再把层包含的文件挂载到云函数的执行环境中。
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 域名加速的配置。


选择"自动配置 CNAME"时,Serverless SSR 会尝试自动为您配置域名的 CNAME 解析,一般需要5 - 10分钟生效,您可以在 域名解析控制台 查看解析结果,或手动配置解析。
本地配置 在 serverless.yml 文件中,inputs 字段里增加以下配置内容,完成 CDN 加速域名的配置。
org: orgDemo
app: appDemo
stage: dev
component: nextjs
name: nextjsDemo

inputs:
# 此处省略....

# 静态资源相关配置
staticConf:
cosConf:
# 这里是创建的 COS 桶名称
bucket: serverless-nextjs
cdnConf: # CDN 加速配置
domain: static.test.com
https:
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: orgDemo
app: appDemo
stage: dev
component: nextjs
name: nextjsDemo
inputs:
# 此处省略....
# 自定义域名相关配置
customDomains:
- domain: test.com
certificateId: abcdefg # 证书 ID
# 这里将 API 网关的 release 环境映射到根路径
pathMappingSet:
- path: /
environment: release
protocols:
- https
完成修改后,重新部署,即可完成自定义域名的配置。