使用阿里云 OSS 存储服务 + CloudFlare 配置图床
使用阿里云 OSS 存储服务和 CloudFlare 配置图床,通过自定义域名实现对私有图床的 CDN 访问,一定程度上提升图床的安全性并且降低流量费用。
前言
为什么不直接使用阿里云 OSS 搭建图床,而要多此一举呢?
带宽联盟 是 Cloudflare
推出的一项服务,由一群具有前瞻性思维的云服务和网络公司组成,致力于为共同客户降低或免除数据传输(带宽)费用。
带宽联盟之间的网络数据传输是直连的,中间不经过任何网络提供商(比如移动),所以成本自然很低,虽然有时候 Cloudflare 是 “减速 CDN”,但是既然咱选择了白嫖,也就无所谓了。
配置流程
1、创建 Bucket
创建 Bucket 时选择海外的地域(如果在别的地域没有服务器的话,就使用香港),存储类型选择标准存储,其余的附加服务按需启用(有的得加钱)

2、配置访问权限
但为了让图床正常使用,需要设置让 Cloudflare ip 能够访问阿里云 OSS
1 | 173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/13,104.24.0.0/14,172.64.0.0/13,131.0.72.0/22 |
进入创建的 Bucket,选择【权限控制】-【Bucket 授权策略】,添加授权,配置如下图

3、配置 CDN
在 CloudFlare 的 DNS 管理面板添加 CNAME 记录,目标设为 Bucket 的域名,代理状态设为已代理,否则 CDN 不起作用。
4、绑定域名
在阿里云的【Bucket 配置】-【域名管理】绑定你刚设置的域名,按照阿里云给出的提示在 CloudFlare 的 DNS 管理处添加指定 TXT 记录即可
5、创建并添加 SSL 证书
在 CloudFlare 的配置面板的【SSL/TLS】-【源服务器】处,选择创建证书,创建之后会告诉你源证书与私钥,这个界面暂时不要动
在阿里云控制台绑定证书的界面,选择【证书托管】,按照阿里云提示上传 SSL 证书即可
以上步骤操作完成后,就可以通过自定义域名访问图片了!!!
安全性配置
1、设置错误页
在阿里云 OSS【数据管理】-【静态页面】下,设置静态网站 index.html
和错误页 404.html
2、跨域设置
在阿里云【数据安全】-【跨域设置】中创建跨域规则,来源设置为你的网站的地址(为了能让网站在本地测试时也能正常展示图片),同时添加 localhost:*
与 127.0.0.1:*
(方便本地调试)
3、防盗链设置
和跨域设置类似。不同之处在于 Referer 是包含请求协议的,所以只需要 将上面的配置加上 http 协议头即可