




























由于某些众所周知的原因,Gravatar 这一在全球范围内广为使用的头像源服务在中国大陆地区处于不可用状态。因此,在建立博客评论系统时往往需要选择使用 Gravatar 镜像源。然而,由云服务商/社区建立的镜像源(如 v2ex 源)目前大多也处于不可用或使用体验不佳的状态,而个人建立的镜像源(如 cdn.sep.cc)往往缺乏可用性保证,且可能加入了一些针对作者自身的特殊优化(如替换默认头像)。目前,常见的解决方法是换用 Cravatar 这一国内源,而本文将简要介绍使用阿里云 OSS + 阿里云 CDN 自建 Gravatar 镜像源的方法。
若域名未备案,在接下来的步骤中需要注意 CDN 的加速区域/OSS 的可用区不能选择包含中国大陆!
登录阿里云账号,进入 OSS 控制台 - Bucket 列表,选择创建 Bucket,填写以下信息:
其他选项可以参照文档按需开启。
Bucket 信息
填写完成后点击“完成创建”,进入 OSS 管理页面。
进入 OSS 控制台 - Bucket 列表 - OSS Bucket 名称页面,这里可以查看并设置 OSS 的一些相关信息。
首次使用,建议按照以下步骤进行一些基础设置:
这里建议创建一个文件夹,命名为 avatar,用于之后存放头像文件。
开启后,将只有白名单内的网站才能引用 OSS 内的文件,如果担心被刷流量可以打开并把自己的网站添加进去,如果后面开了 CDN 这里可以忽略。
这里可以设置定时清理 OSS 内的头像文件,节约空间同时实现自动刷新缓存。
点击“创建规则”,填写以下信息。
avatar/)
基本信息
下面的文件执行策略可以按照这个填写(碎片执行策略随意):
策略
此处可以为 OSS 配置自定义域名,如果需要使用 CDN 可忽略。
点击绑定域名,输入域名后按照提示添加 DNS 记录即可。
绑定后点击“证书托管”可以配置 SSL 证书开启 HTTPS 访问。
点击左侧数据管理 - 镜像回源,选择创建规则,填写以下信息:
avatar/avatar/(Gravatar 的头像 API 地址在 https://gravatar.com/avatar/ 下)https 和 gravatar.com,第三个文本框不必填写
镜像回源
保存即可。
此时,使用“概览”页面的外网访问域名(请使用 Bucket 域名)或者先前添加的自定义域名(假设为 example.com),即可替换 gravatar.com。
例如:https://example.com/avatar/
OSS 访问速度固然不错,但是使用 CDN 加速能更快。
进入 CDN 控制台 - 域名管理,选择“添加域名”,填写以下信息:
勾选“我理解并同意以上合规承诺”后点击下一步即可创建完成。接下来按照提示添加 CNAME 记录即可。“推荐配置”的内容可以稍后完成。
待 CDN 开通完成后,点击域名进入配置页面。
该页面无需配置,可以打开下方的“IPv6 开关”。
大部分配置无需修改,只需作如下配置:
回源配置1
此处的修改将在后文详细说明,此处暂时略过。
添加一条记录:
/avatar建议添加如下记录:
Cache-Controlmax-age=604800(此处以秒为单位,建议不长于前面 CDN 的缓存过期时间)在此页面上传 SSL 证书开启 HTTPS。
建议作如下配置:
此处可开启防盗链,同上文 OSS 设置。
此处优化建议全部打开。
s此处可以开启 QUIC 协议,建议开启。
s 参数Gravatar 支持了 s 参数,可以指定获取的头像尺寸。然而,OSS 只会保留一个尺寸的版本,若首先访问了小尺寸的头像,则后续刷新前都将只能获取小尺寸头像。此处解决方案是通过 CDN 重写访问参数,让 OSS 只从 Gravatar 获取一个较大尺寸的头像并保存,并通过 OSS 的图片处理功能返回所需要尺寸的头像。
在 OSS 中开通“图片处理”功能,无需其他配置。
在“回源配置 - 重写回源 URL”中添加两条记录(按顺序):
s 参数时的重写规则(优先级高)
^/avatar/([a-f0-9]+)\?.*s=([0-9]+)/avatar/$1?s=200&x-oss-process=image/resize,limit_0,w_$2s 参数时的重写规则(优先级低)
^/avatar/([a-f0-9]+)/avatar/$1?s=200&x-oss-process=image/resize,limit_0,w_80此处使用正则表达式匹配 /avatar/ 目录下、文件名为小写十六进制(Gravatar 使用的邮箱 Hash)的请求,并重写其参数。
第一条规则匹配后面带有 ?s=xxxx 的请求,用正则表达式匹配出 s 参数,第二条匹配没有 s 参数的请求,直接指定默认值 80。
目标 Path 含义为:请求 /avatar/ 目录下对应文件,指定 s 参数为 200,并附加 x-oss-process=image/resize,limit_0,w_[图片宽度] 参数使用 OSS 图片处理的图片缩放功能,
保存并等待配置生效即可。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。