将白嫖进行到底——记一次网站服务迁移国外服务器流程
序言
先简单介绍一下这个网站吧,域名是几年前在阿里云买的,当时也入手了个服务器用于部署毕设项目,为了能正常访问网站也是备案过一次,服务器到期之后就没管了,但一直有在续域名。
两个月前用域名搭了一个博客,服务器白嫖的Github Page
,图床使用的阿里云的OSS
。(重点:公开访问!)
运行了小两月都没什么事情,直到在V2
看到有人OSS
存储被盗刷,损失好几千,吓得我赶紧开通了阿里的CDN
服务,把Bucket
私有化,然后用CND
回源到OSS
存储,给CND
加上了各种流量控制,访问控制。
正当我以为一切都是如此美妙的时候,阿里云给我发来了信息,不到一个小时就把CND
域名下线了…
总之,只要将域名解析到了国内的空间就需要备案,否则就会限制域名无法访问。
无奈于备案流程实在繁琐冗长,况且我这小小网站根本没有国内服务器,备案还需要另外花费金币购买服务码,既然如此,那就将白嫖进行到底!
经过一番搜寻,我选择使用 Backblzae b2
作为图床,使用 Cloudflare
域名服务商做DNS
解析和CDN
代理工作。
Backblaze
为什么选择B2
最主要的原因是它免费、便宜!
存储前10GB
内容完全免费,超过10GB
的部分收取6$/month
的费用。
对于我来说10GB
的存储容量绝对是够够的。
创建Bucket
首先你需要注册一个账号,然后点击创建桶,填写Bucket
名称,注意这个名称必须是唯一的。
桶的访问权限设置为Public
,剩余参数全部默认即可。
创建完之后CORS规则选择’与所有HTTPS来源共享此存储桶中的所有内容’。
桶设定默认是不缓存,我们可以设置资源过期时间:
点击上传/下载按钮,随便上传一张图片,查看图片信息:
现在我们可以直接通过友好URL访问这张图片。
记住友好URL中的域名部分,后续Cloudflare
代理时需要用到。
Picgo配置默认图床
如果不想每次上传文件都打开Backblaze
网站,可以使用Pigco
软件配置默认图床上传。
添加应用密钥
进入页面左侧Application keys
点击 Add a new Application Key
创建一个应用密钥,随便填写一个密钥名字然后选择要授权的Bucket
和读写权限。
配置Picgo
插件设置中搜索S3
下载安装amazon s3 uploader
插件,填写刚才生成的应用密钥和ID,地区填写你的Bucket Endpoint
第二部分的内容,例如我这里是us-east-005
。自定义节点填写Endpoint
,自定义域名可以帮助我们上传成功后将Endpoint的域名替换为我们自己的域名。
配置完成就可以上传图片了。
Cloudflare
通过Cloudflare
访问Backblaze
的流量是完全免费的,只不过不绑定卡的话每天只有2500次免费请求。
添加域名
如果你没有域名,可以购买一个域名,如果你已经有一个域名了,在页面左侧的website
添加你的顶级域名到Cloudflare
,然后在你的域名注册商将你的域名服务器修改为Cloudflare
提供的服务器(一般是在域名管理中)。
添加域名解析记录
第一个表示将二级域名image.seeyourface.cn
解析到Backblaze
的图床节点,第二三条表示将seeyourface.cn
和www.seeyourface.cn
解析到github page
。
右边黄色的云朵表示Cloudflare
将代理你的请求,例如做一些缓存策略等等。
开启严格的SSL加密模式
完成上面的步骤后,你可能无法访问你的图片和网站,因为图床是使用https
访问的,github page
如果开启了强制https
访问,你可能会收到301 Moved Permanently
的错误信息。
这时候需要点击左侧的SSL/TLS
页面,开启严格加密模式。第三个选项表示接受自签名证书,第四个表示只接受受信任的证书。
这时你才可以使用https://image.yourdomain.com/file/{bucketName}/default.png
所示格式来访问你的图片。
这种URL会暴露我们的BucketName
,Cloudflare
提供了URL Path
的规则转换。
请求路径转换
选择左侧:Rules -> Transform Rules -> Rewrite URL -> Create Rule
自定义过滤条件:
1 |
|
匹配成功则动态重写为:concat(“/file/{bucketName}”,http.request.uri.path)
替换为你自己的域名和bucket名称
然后就可以通过你的域名 + 图片存储路径来访问你的图片,这样就隐藏了你的Bucket
名称。
清除响应头
相同的页面选择Modify Response header
页签,添加一条规则:
再添加一条规则,让你的URL
可以在外部任意访问:
结尾
恭喜你,你已经完成所有操作,可以愉快访问你的网站了!
参考
- https://www.backblaze.com/blog/free-image-hosting-with-cloudflare-transform-rules-and-backblaze-b2/#:~:text=Backblaze%20only%20supports%20secure%20HTTPS%20connections%2C%20so%20the,Backblaze%20via%20HTTPS%2C%20and%20requires%20a%20CA-issued%20certificate. ↩
- https://developers.cloudflare.com/ssl/troubleshooting/too-many-redirects/ ↩