记从webapps目录下转移资源文件到Tomcat目录外的其他路径及第三方加载对比
背景:
由于上传文件资源的日益增加,导致服务器所在磁盘存储空间不足,进而影响MySQL数据库无法进行较为复杂及数据量大的查询,报error 28 from storage engine错误
分析:
解决存储不足问题,即可解决mySql数据库错误
1、清空/tmp目录文件,杯水车薪
2、删除其他路径文件,日益增长的文件资源迟早会引起相关问题
3、转移资源文件到其他挂载磁盘,或者使用第三方存储(七牛/阿里云的OSS)√
从简单入手,我就选择了转移到其他挂载磁盘上
操作:
找到Tomcat下的server.xml文件,在
<Host>... ...</Host>
中添加
<!-- 设置图片虚拟路径 -->
<Context path="映射路径(即原图片相对路径)" docBase="其他物理路径" reloadable="true" >
</Context>
举例:
<!-- 设置图片虚拟路径 -->
<Context path="/a/b" docBase="D://" reloadable="true" >
</Context>
比如 localhost:8080/a/b/c.jpg,即可访问到D://c.jpg
*PS:同时在实际的上传代码也要把图片上传的物理路径改为转移后的文件路径
对比:
分别使用浏览器访问七牛和服务器一样的图片,具体的访问情况如下:
1、访问七牛存储的图片,耗时1.32s
2、访问服务器上的图片,耗时6.87s
为了提高用户体验,建议使用第三方存储和CDN,提高购买的服务器的带宽也是一种选择,
尽量按成本选择方案,七牛本身也有提供10g的免费使用额度。