前言
众所周知想要搭建一个大容量的图床就避免不了需要用到一个服务器,并且服务器还要满足以下几点:优秀的网络线路、大硬盘、高IO、强大的CPU,要满足这几点服务器的价格直接直线飙升,每个月服务器的花费就成了一个巨大的问题。前几天在聊天的时候突发奇想想到了一个究极便宜并且稳定性极高的大容量图床搭建方法,如果是自用的话可以参考我的这篇文章:使用CloudFlare白嫖阿里云OSS做图床几乎可以说是无任何的成本,非常适合图片不多的博客和网站使用。
原理解析
无论是onedrive还是Googledrive等一系列的云存储都有着API请求数的限制,达到限制之后就有可能遇到图片无法加载的情况,而众所周知CloudFlare的缓存最长的有效期为一个月,在一个月的时间中用户获取的图片内容是直接从CloudFlare缓存中获取的和我们的服务器毫无关系,所以我们可以利用这一点减少云储存API的使用,相当于我们让CloudFlare免费给我们做了一个月的储存中转。而对于国内的线路我们可以采用CDN或者优质线路的服务器进行反代进行加速,相当于使用图床的用户可以自行使用自己的域名和服务器给自己使用的图片进行加速,节约了非常多的储存空间。并且CloudFlare免费版的单文件缓存最高可以达到100M可以储存非常多的大图。
准备工作
1、一个稳定的服务器(线路和硬盘大小无所谓)
2、接入CloudFlare的域名一个
3、OneDrive5T账号(推荐)或者是GoogleTeamDrive一个
最好可以使用office的E5订阅的OneDrive账号非常稳定
部署教程(空兰图床实例)
1、云储存挂载
将OneDrive挂载到服务器(GoogleTeamDrive同理),如果有不会的小伙伴可以自行搜索教程,挂载成功后就如下图示。
2、设置图片域名
网站和储存在一个服务器中
创建一个网站然后将网站的根目录设置在云储存的目录中,如下图所示
网站和储存分离
先使用IP创建一个网站,并且将网站的默认目录设置成储存挂载的位置,如下图所示(网站和储存在一个服务器可省略)
然后再创建一个你想要使用的域名的网站,设置反代刚刚创建的服务器端口
3、搭建图床系统(空兰图床)
因为空兰图床安装比较简单为了方便就选择空兰图床,其他的图床程序原理是一样的
空兰图床:GitHub
安装PHP中的fileinfo拓展
然后创建网站将图床程序上传到网站根目录,修改网站的伪静态为下面内容
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}
修改网站的默认运行目录运行目录为public
打开网站就可以检测环境问题,配置好信息就可以安装成功
因为空兰图床没有修改本地储存的方法所以我们换一个思路,开启FTP将FTP的默认路径设置为onedrive的挂载路径,然后使用FTP的储存方式储存文件
设置FTP
[
配置图床的FTP
注意如果在搭建完成之后传输图片遇到有上传到云存储,但是图床上传页面显示错误的可以将被动模式打开。
设置完成之后就可以上传一个图片测试一下是否可用,更多图床设置教程在作者的Github中有介绍
进阶教程
储存服务器与网站分离配置方法
众所周知我们的服务器因为配置相当的低,可能遇到多人服务或者被网站被攻击非常有可能宕机,所以如果遇到这种情况我们就可以将图床网站的前端和后端的储存分离。
因为空兰图床是一款基于PHP和MySQL的图床程序我们完全可以将图床放到虚拟主机空间中,在使用FTP连接我们服务器的储存就可以大大的减少服务器的负载。
国内加速优化
因为我们的图床最终是经过CloudFlare再提交到用户的,国内的访问速度不会相当的理想,于是我们需要对国内的访问速度进行优化,有两种不同的优化方式,大家可以根据自己的情况自由选择
1、使用线路优质的服务器
如果你有一台对国内网络友好的服务器你就可以在服务器上搭建一个反代,反代CloudFlare的节点,然后通过DNS解析将国内外的解析分开。
或者你可以单独使用一个域名反代到原来的图片域名设置请求域名,这样就可以限制其他人的图片通过你的服务器加载,达到节省流量的丰富。
2、CDN
暂无白嫖CDN可以测试,理论上和反代是一样的,等白嫖到CDN再测试。