0%

使用aws的s3托管自己的静态网站加cloudflare全站https

简介

因为某些原因之前的的博客域名www.bboysoul.com被dns污染了,导致原本经营起来的博客流量现在全没有了,为了是我新域名可以长长久久,所以我现在做事的风格就是可以使用国外服务的,就尽量使用国外服务。

我的博客一直是使用hexo生成的静态页面,所以对服务器的要求不是很大,之前使用www.bboysoul.com这个域名的时候因为备过案,所以使用过阿里云的oss一段时间,用了bboy.app这个域名之后就一直扔在azure的虚拟机上,因为azure貌似不是特别稳定,所以今天就想直接扔在aws的s3上,然后加上cloudflare的cdn

s3配置

和oss一样s3开始使用的时候也是要创建bucket的,但是要注意的是要创建和域名一样的两个bucket,比如我的域名是bboy.app那么就要创建bboy.app和www.bboy.app两个bucket

创建完成之后设置bboy.app这个bucket权限阻止公共访问权限全部关闭,如下图

之后点击权限->存储桶策略,写入

1
2
3
4
5
6
7
8
9
10
11
12
13

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bboy.app/*"
}
]
}

注意修改Resource,把bboy.app改为你的bucket名字

修改完成之后你就会发现访问这里变成了公有

接着设置属性->静态网站托管,设置成如下

之后设置www.bboy.app这个bucket和bboy.app这个bucket一样阻止公共访问权限全部关闭,然后点属性->静态网站托管设置成如下

到这里为止s3部分设置完成

cloudflare配置

因为要配置网站的https还有自己的域名还有网站的cdn,所以要用到cloudflare,把网站接到cloudflare要从域名注册商那里把域名的dns服务器改为cloudflare的,所以生效可能要一点时间,这个不在今天的重点范围之内,今天的重点是配置域名的cname解析

bboy.app这个域名的cname解析就是s3给你的那个域名,之后www.bboy.app的cname解析你直接解析到bboy.app就可以了,要注意的是两个域名都要过cloudflare的cdn,配置如下

上传网站到s3

这个就很简单了,直接使用aws的命令行上传就可以了

安装awscli

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple awscli

生成配置文件

aws configure

按照提示输入对应的aws_access_key_id等,output直接写json就好了

接着上传

aws s3 cp public s3://bboy.app/ --recursive

上面就是上传一个public文件夹到bboy.app这个bucket的例子

欢迎关注Bboysoul的博客www.bboy.app

Have Fun