最近为网站的图片存储问题烦,虽然上了cdn,由于每天交换的图片数据有几十G,一直一台服务器撑着,但还是经常资源不足,导致无法上传图片或者显示图片;开始的设计是用第三方的存储,但是一直等待对方接口的开发,拖延了3~4个月,最后报价是每年3w多费用,没舍得花,也不想自己的平台受其它人控制着,最后咬了下牙建立了自己比较简单实用的图片存储方案,发现比较实用,分享下,个人属于经济实惠和节约资源的一个方案吧;
- 先看好处
1.1.技术简单,通过IIS/Appache/tomcat/WCF部署,这种c#、Asp、asp.net、java、php的上传、删除、下载程序开发简单,部署简单,维护也简单;
1.2.节约成本,有磁盘空间的服务器都可以应用上,普通的PC服务器都可以架,只要有磁盘,不会占额外的网站流量(第三方存储如果想自己也保存原图,会占用额外带宽);
1.3.分布式,是实际意义上的存储分布式,减少风险,增加安全;
1.4.改造成本小,其实就是将上传、下载、删除的整个过程全部独立出来; - 实现方法
2.1.存储服务器,需要Web容器,哪个都不重要,只要实现图片的上传、删除、下载(包含生成缩略图---这地方稍微复杂点);
2.2.前端服务器,建议还是linux(window下的nginx基本测试里都不好用),用nginx做反向代理,通过URL规则来确定请求分发到哪台后端的web服务器上;
2.3.URL规