阿里云自定义域名的静态网站部署 OSS + CDN + HTTPS

使用以下服务域名均需备案,且最好 DNS 解析 / 托管在阿里云。

创建子账户获取 AccessKey ID 和 AccessKey Secret(可选)

这里使用了 CI 服务(GitHub Action),自动化部署需要生成子账户完成授权。
RAM 访问控制https://ram.console.aliyun.com/users )中,申请子账户,并授予编程访问(启用 AccessKey ID 和 AccessKey Secret,支持通过 API 或其他开发工具访问)。

  1. 申请子账户(授予编程访问
  2. 保存 AccessKey ID 和 AccessKey Secret

创建对象存储对象-桶

  1. 创建对象存储对象-桶(私有)
  2. 启用全球加速接入(可选)

如果同样使用 GitHub Action,可以采用以下配置文件。使用 manyuanrong/setup-ossutil 的插件,如果网络质量满足要求,使用直连即可,endpoint 填入桶的地域接入域名,比如深圳就是 oss-cn-shenzhen.aliyuncs.com。如果在境外或者其他原因导致速度太慢,可以试试阿里云的全球加速接入的域名 oss-accelerate.aliyuncs.com,需要自行启用(要加钱)。

配置文件中的 ./public_artifact 为静态网页编译输出目录, oss://OSS_BUCKET/ 为对象存储桶名,需要自行修改。

1
2
3
4
5
6
7
8
9
10
11
12
- name: setup aliyun oss
uses: manyuanrong/setup-ossutil@master
with:
endpoint: oss-cn-shenzhen.aliyuncs.com
access-key-id: ${{ secrets.OSS_KEY_ID }}
access-key-secret: ${{ secrets.OSS_KEY_SECRET }}

- name: cp files to aliyun
run: |
ossutil rm -rf oss://OSS_BUCKET/*
ossutil cp -rf --job 10 public_artifact/ oss://OSS_BUCKET/

  1. 创建桶后,需要给予之前创建的子账号管理权限(完全控制)。

  2. 于基础设置中启用静态页面配置

    404 页面同理自行配置,Hexo 默认好像是没有 404 页面的,需要创建。

  3. 如果部署了持续集成,每次部署会自动上传到对应的对象存储桶中。如没有使用持续集成,则需要手动上传。

配置 CDN

其实直接将对象存储桶设置为公有读私有写一样可以访问,但是阿里云的对象存储流量稍贵,故这里套一层 CDN 降低流量费用,内网回源免流量费用,并且解决一个小 bug:首页 / 无法跳转到 /index.html。阿里云 CDN 中有 URL 重写功能能解决这个 bug。

申请 SSL证书(启用HTTPS)

搜索 证书,找到 SSL证书 申请页面。阿里云也提供免费证书申请,只不过选项较多不太好找。如图所示,申请证书。按照提示验证,等待签发,无需下载证书。

配置 CDN 细节

  1. 创建 CDN 配置

    1. 设定加速域名为自定义域名
    2. 业务类型选择图片小文件
    3. 源站信息选择OSS
    4. 端口选择443
    5. 加速区域选择“仅中国内地”
    6. 配置域名解析 CNAME 为分配的加速域名
  2. 启用优化配置

    1. 启用 阿里云OSS私有 Bucket 回源
    2. 创建重写 URL 规则,修复访问错误:首页 / 无法跳转到 /index.html。参考官方解决方案:开启私有OSS Bucket回源后,访问域名提示“You are forbidden to list buckets”错误。如果不想访问首页时有后缀 /index.html,改OSS桶为公有读私有写,禁用第一步的“阿里云OSS私有 Bucket 回源”。
    3. 启用 TLS 1.0, 1.1, 1.2, 1.3
    4. 启用 HTTPS,选择前面申请的SSL证书
    5. 启用各种压缩和优化
    6. 启用 IPv6
  3. 配置最后一步,去 OSS 对象存储的设置中,对应桶开启 CDN 自动刷新

阿里云自定义域名的静态网站部署 OSS + CDN + HTTPS

https://blog.liziwl.cn/2020/12/03/aliyun-page/

作者

Arthur LI

发布于

2020-12-03

更新于

2023-03-25

许可协议

评论