之前用cloudflare加速github图床,结果速度更慢了,博客的图片半天加载不出来。然后就想着用typecho自带的附件功能上传图片,结果硬盘占用很大,迁移起来也要带着图片一起,很不方便。想了想我这是香港服务器啊,访问github肯定很快,所以又把图片放到github图床上,用服务器进行反向代理实现加速。既不占用空间,速度又快,岂不美哉
小图测试
大图测试
https://img.cym.cm/2021/20210302164303.jpg
搭建教程
(一)域名解析
我的博客域名是 cym.cm ,想建的图床域名是 img.cym.cm ,添加对应的域名解析,都解析到自己的 源站ip 上
(二)nginx反向代理
配置自己的nginx配置文件,对 img.cym.cm 进行反向代理
# 博客,自己写
server {
..
server_name cym.cm;
..
}
# 反代图床
server {
listen 80;
listen 443 ssl;
server_name img.cym.cm;
location / {
proxy_pass https://github.io;# 不是github.com
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
ssl_certificate /etc/nginx/ssl/cert.pem;# 注意替换证书路径
ssl_certificate_key /etc/nginx/ssl/key.pem;# 注意替换证书路径
ssl_session_cache shared:le_nginx_SSL:1m;
ssl_session_timeout 1440m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS";
}
如果你是http站点,那就更简单了,直接把ssl部分删掉即可
# 博客,自己写
server {
..
server_name cym.cm;
..
}
# 反代图床
server {
listen 80;
server_name img.cym.cm;
location / {
proxy_pass https://github.io;# 不是github.com
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
然后重启nginx服务
service nginx force-reload
打开浏览器,访问图床域名看看效果,如果显示的是这样的404,那么则代表反代成功了。否则就是没成功,看看nginx的配置是不是写错了
(三)建立github图床仓库
先注册,或登录github,这一步自己整
https://github.com
新建一个仓库。点击这个New
输入仓库名字,我写的是 ImgBed,然后随便写个描述,注意,这里要选择 public 公开的仓库,不然别人是没有办法访问你的图片的,然后创建
创建成功之后,会提示你怎么进行仓库的初始化,让你敲git指令,不用管,直接点 creating a new file 创建一个新文件
文件名写 CNAME ,全大写,不能错!内容写你的图床域名,我的是 img.cym.cm ,然后保存
创建好后,点开上面的 Settings 设置,创建 Github Pages
进入之后 Ctrl+F
,搜索 page,找到这里。选择分支,新建的项目默认是 main,然后保存
保存刷新之后,再滑下来确认一下,这个自定义域名是不是你之前写的图床域名 img.cym.cm,如果不是,就改过去
到这里,反向代理就已经完成了,你可以直接上传图片到github的这个仓库里,然后用你的图床域名访问试试看
(四) (可选)使用PicGo工具上传图片
如果嫌github上传不方便,可以使用专业的工具,比如PicGo
https://github.com/Molunerfinn/PicGo/releases/tag/v2.3.0-beta.4
下载下来,我们要先配置一个Token,才能让这个工具有权限给我们上传图片
打开github个人信息界面
https://github.com/settings/profile
点击下面的 Developer Settings
创建一个Token
起个名字,权限把第一个打勾就行,其他的不需要。然后滑到最下面保存
之后会出现你的Token,注意!这个只会出现一次,请妥善保存
Token创建好之后,我们打开PicGo工具,点击图床设置,Github图床,照着图配置好,保存
- 仓库名就是你的用户名+仓库名,前后没有/
- 分支名默认main,如果你改成了master就用master
- Token就是刚刚生成的
- 指定路径就是保存在你的github仓库什么位置,如果你写 img/,就是保存在img文件夹下,或者 2021/03/02/ 这样,后面带/,如果你想保存在根目录,就什么都不写
- 自定义域名就是你的图床域名
这样就可以了,让我们试试上传图片,上传成功。可以在左侧相册里看见你上传好的图片
打开浏览器看看,能访问
这样,nginx反向代理github图床进行加速就完成了