通过 Serverless Component 快速构建一个 Serverless Web 网站服务后,如果您希望配置自定义域名及支持 HTTPS 的访问,则可以按照本文提供的两种方案快速配置。
配置前,需要确保账号实名并已经 开通 CDN 服务。
在 serverless.yml
中,增加 CDN 自定义域名配置:
# serverless.yml
component: website
name: myWebsite
app: websiteApp
stage: dev
inputs:
src:
src: ./public
index: index.html
error: index.html
region: ap-guangzhou
bucketName: my-hexo-bucket
protocol: https
# 新增的 CDN 自定义域名配置
hosts:
- host: www.example.com # 希望配置的自定义域名
https:
switch: on
http2: off
certInfo:
certId: 'abc'
# certificate: 'xxx'
# privateKey: 'xxx'
再次通过sls deploy
命令进行部署,并可以添加--debug
参数查看部署过程中的信息。
说明:
sls
是serverless
命令的简写。
$ sls deploy
myWebsite:
url: https://my-hexo-bucket-1250000000.cos-website.ap-guangzhou.myqcloud.com
env:
host:
- https://www.example.com (CNAME: www.example.com.cdn.dnsv1.com)
17s › myWebsite › done
部署完成后,在命令行的输出中可以查看到一个以 .cdn.dnsv1.com
为后缀的 CNAME 域名。参考 CNAME 配置文档,在 DNS 服务商处设置好对应的 CNAME 并生效后,即可访问自定义 HTTPS 域名。
在 serverless.yml
中,增加 API 网关自定义域名配置。本文以 egg.js 框架为例,配置如下:
# serverless.yml
component: apigateway # (必填) 组件名称,此处为 apigateway
name: restApi # (必填) 实例名称
org: orgDemo # (可选) 用于记录组织信息,默认值为您的腾讯云账户 appid
app: appDemo # (可选) 该应用名称
stage: dev # (可选) 用于区分环境信息,默认值为 dev
inputs:
region: ap-shanghai
protocols:
- http
- https
serviceName: serverless
environment: release
customDomains:
- domain: www.example.com
# 如要添加https,需先行在腾讯云-SSL证书进行认证获取cettificateId
certificateId: abcdefg
protocols:
- http
- https
endpoints:
- path: /users
method: POST
function:
functionName: myFunction # 网关所连接函数名
再次通过sls deploy
命令进行部署,并可以添加--debug
参数查看部署过程中的信息。
说明:
sls
是serverless
命令的简写。
$ sls deploy
restApi:
protocols:
- http
- https
subDomain: service-lqhc88sr-1250000000.sh.apigw.tencentcs.com
environment: release
region: ap-shanghai
serviceId: service-lqhc88sr
apis:
-
path: /users
method: POST
apiId: api-e902tx1q
customDomains:
- www.example.com (CNAME: service-lqhc88sr-1250000000.sh.apigw.tencentcs.com)
8s › restApi › done
部署完成后,在命令行的输出中可以查看到一个以 .apigw.tencentcs.com
为后缀的 CNAME 域名。在 DNS 服务商处设置好对应的 CNAME 并生效后,即可访问自定义 HTTPS 域名。
本页内容是否解决了您的问题?