• gravatar 国内镜像搭建


    前言

    wordpress的头像默认使用的gravatar服务, 但是其地址source.gravatar.com在国内完全无法访问.

    所以想着自己搭建一个镜像, 可以查看下方的搭建过程

    搭建

    看网上很多教程, 说的都是通过某某云服务商的cdn服务来进行代理, 但是我试了很久也没有成功. 原因很简单, 域名被国内屏蔽了, cdn 也是在国内访问访问的, 所以拉不到数据也正常.

    也就是说, 归根结底是屏蔽的原因, 如果能够绕过屏蔽, 那么就可以成功了. 百思不得其解. 直到有一天, 我在阿里云的oss后台看到了这个:

    image-20210706225142154

    这不就是我想要的功能么? 我的思路是这样的:

    1. oss放到香港
    2. 通过oss代理secure.gravatar.com
    3. 通过cdn代理oss进行加速

    按照这个思路, 访问secure.gravatar.com的地址在香港, 想必是可以访问到的. 说干就干. 以下平台基于阿里云.

    创建Bucket

    image-20210706225538635

    注意, 地域要选择在香港.

    配置镜像回源

    image-20210706225649777

    image-20210706225751504

    注意, 携带请求参数要选中.

    测试回源配置

    访问一个默认头像:

    https://hujingnb-gravatar.oss-cn-hongkong.aliyuncs.com/avatar/9b59d04405217fb93755abf434aa9c1e?s=64&d=mm&f=y&r=g

    请将其中的Bucket名称更换为你自己的. 成功访问后, 你会在文件管理中看到刚刚请求的文件已经保存了.

    image-20210706225959501

    到这一步, 说明oss配置已经 OK 了.

    如果你不需要配置 cdn, 那么, 到这一步其实已经可以使用了. 不过香港服务器在内地访问速度上还是不太理想, 建议配一下cdn加速访问

    配置cdn

    添加cdn域名. 链接: https://cdn.console.aliyun.com/domain/list

    image-20210706230143189 image-20210706230249792

    注意, 需要使用备案过的域名才可以. 然后选择源站信息, 这里代理我们刚刚创建的oss即可.

    image-20210706230448354

    创建域名解析

    image-20210706230715889

    这里提示需要进行域名解析. 到域名服务商配置一下就行. 域名配置要等一会

    image-20210708003802151

    直到上图的状态CNAME都 OK 了. 就可以进行下一步了.

    image-20210708003840327

    启用 HTTPS

    点击cdn域名的管理, 配置 HTTPS. 使用服务商提供的免费证书即可.

    image-20210706231352365 image-20210706231414840

    OK. 到这一步, 就已经可以通过cdn来访问Gravatar的头像. 为了防止之前的链接缓存问题, 来个不一样的头像试一下: 记得将其中的域名改成你自己的.

    https://*.hujingnb.com/avatar/6d42d2d850afb2b15f51156f37c16f41?s=64&d=identicon&f=y&r=g

    如果访问成功, 说明你已经成功了. 再次回到oss文件管理, 发现刚刚访问的文件已经下载了.

    到这里, 你的gravatar代理已经可以投入使用了.

    配置头像过期

    这里需要配置两个过期, 如果文件一直不过期, 那么用户头像更新之后也拿不到最新的头像.

    1.配置 cdn 过期

    cdn会将访问的文件缓存在各地节点, 所以需要配置一下过期时间.

    image-20210706233330809

    2.配置 oss 过期

    即使cdn文件过期了, 如果oss中文件还在, 会直接从oss中获取, 仍然拿不到最新的头像.

    oss中, 可以配置文件的生命周期, 指定时间之后, 自动将文件删除.

    image-20210706233533018

    比如, 可以配置一天后自动将文件删除.

    image-20210706233700335

    结束

    如果你到了这里, 应该已经配好了吧. 愉快的使用自己的镜像吧. 对了, 你可以将oss的访问权限改为私有, 然后在cdn授权一下私有Bucket的可读权限即可.

    image-20210706234037899

    问题

    最后, 说一下这样配置的问题. 因为文件存储到了oss, 而oss又是根据文件名进行缓存的. 当一个文件已经存在了, 就不会再次回源访问了, 所以, 你会发现以下几个头像是相同的.

    https://secure.gravatar.com/avatar/9b59d04405217fb93755abf434aa9c1e?s=64&d=mm&f=y&r=g
    https://secure.gravatar.com/avatar/9b59d04405217fb93755abf434aa9c1e?s=64&d=retro&f=y&r=r
    https://secure.gravatar.com/avatar/9b59d04405217fb93755abf434aa9c1e?s=64&d=wavatar&f=y&r=r
    https://secure.gravatar.com/avatar/9b59d04405217fb93755abf434aa9c1e?s=64&d=identicon&f=y&r=r
    https://secure.gravatar.com/avatar/9b59d04405217fb93755abf434aa9c1e?s=64&f=y&r=r
    

    当然了, 如果是自己使用, 访问头像的参数都是固定的, 自然是没有问题. 但如果要作为公共镜像的话, 不同用户访问通过不同参数访问到了同一个头像, 就不太好了.

    以上, 此方法稳定且费用极低, 但是建议仅个人使用, 不建议用作公共头像.

    当然, 如果不考虑费用的话, 可以买一个阿里云香港的轻量服务器, 每月24元, 就可以通过nginx来进行反向代理, 不存在文件缓存的问题.

    最后, 欢迎访问我的小破站: https://hujingnb.com/archives/564

  • 相关阅读:
    面试经验
    二叉树和递归
    优先队列
    队列问题
    书法学习资料
    栈的问题
    Git常用命令
    字母大小写转换
    深入类中的方法[8] - 抽象方法与抽象类
    深入类中的方法[7] - 关于 inherited
  • 原文地址:https://www.cnblogs.com/hujingnb/p/14979636.html
Copyright © 2020-2023  润新知