之前用cloudflare加速github图床,结果速度更慢了,博客的图片半天加载不出来。然后就想着用typecho自带的附件功能上传图片,结果硬盘占用很大,迁移起来也要带着图片一起,很不方便。想了想我这是香港服务器啊,访问github肯定很快,所以又把图片放到github图床上,用服务器进行反向代理实现加速。既不占用空间,速度又快,岂不美哉

小图测试

nginx反向代理github图床进行加速

大图测试

https://img.cym.cm/2021/20210302164303.jpg

搭建教程

(一)域名解析

nginx反向代理github图床进行加速

我的博客域名是 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的配置是不是写错了

nginx反向代理github图床进行加速

(三)建立github图床仓库

先注册,或登录github,这一步自己整
https://github.com

新建一个仓库。点击这个New

nginx反向代理github图床进行加速

输入仓库名字,我写的是 ImgBed,然后随便写个描述,注意,这里要选择 public 公开的仓库,不然别人是没有办法访问你的图片的,然后创建

nginx反向代理github图床进行加速

创建成功之后,会提示你怎么进行仓库的初始化,让你敲git指令,不用管,直接点 creating a new file 创建一个新文件

nginx反向代理github图床进行加速

文件名写 CNAME ,全大写,不能错!内容写你的图床域名,我的是 img.cym.cm ,然后保存

nginx反向代理github图床进行加速

创建好后,点开上面的 Settings 设置,创建 Github Pages

nginx反向代理github图床进行加速

进入之后 Ctrl+F,搜索 page,找到这里。选择分支,新建的项目默认是 main,然后保存

nginx反向代理github图床进行加速

保存刷新之后,再滑下来确认一下,这个自定义域名是不是你之前写的图床域名 img.cym.cm,如果不是,就改过去

nginx反向代理github图床进行加速

到这里,反向代理就已经完成了,你可以直接上传图片到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

nginx反向代理github图床进行加速

创建一个Token

nginx反向代理github图床进行加速

起个名字,权限把第一个打勾就行,其他的不需要。然后滑到最下面保存

nginx反向代理github图床进行加速

之后会出现你的Token,注意!这个只会出现一次,请妥善保存

nginx反向代理github图床进行加速

Token创建好之后,我们打开PicGo工具,点击图床设置,Github图床,照着图配置好,保存

  • 仓库名就是你的用户名+仓库名,前后没有/
  • 分支名默认main,如果你改成了master就用master
  • Token就是刚刚生成的
  • 指定路径就是保存在你的github仓库什么位置,如果你写 img/,就是保存在img文件夹下,或者 2021/03/02/ 这样,后面带/,如果你想保存在根目录,就什么都不写
  • 自定义域名就是你的图床域名

nginx反向代理github图床进行加速

这样就可以了,让我们试试上传图片,上传成功。可以在左侧相册里看见你上传好的图片

nginx反向代理github图床进行加速

打开浏览器看看,能访问

nginx反向代理github图床进行加速

这样,nginx反向代理github图床进行加速就完成了

标签: nginx, github, 反向代理

添加新评论