最近常常有人问图片上传怎么做,有哪些方案做较量好,也看到过有关于上传图片的做法,可是都不是最好的,本日再这里简朴讲一下Nginx实现上传图片以及图片处事器的大抵理念。
假如是小我私家项目可能企业小项目,仅仅只有十来号人利用的小项目,可以利用如下方案:
用户会见系统,利用上传图片成果,那么图片就上传到你的当前项目地址的tomcat处事器上,在/image下,上传乐成后用户可以直接会见
http://ip:port/project/images/xxx.jpg
这样做在用户少的时候是没有问题的
当你的企业成长起来了,业务量增多了,利用的这个项目开始大起来了,发明系统速度变慢了,那么你就思量到集群了对吧
那么好,假设你增加了一个tomcatB,机能提高了一点,图片也乐成上传了,做了负载平衡,假设图片上传的了tomcatA(用户是不知道的)
第二次会见的时候(先不思量session粘性不粘性的问题,假设是共享的),用户会见到了tomcatB,图片没有了,是个大叉叉,
我的天呐!发什么什么事了,显着方才上传的图片没有了,
再刷新一下,欸!又有了?这是什么环境呢?
靠山知道咋回事,可是用户不知道啊!!!
那么办理方案是这样的,tomcatA和B上传至图片处事器,这用户请求的时候只会见图片处事器的路径,这样就没问题了
有人会问图片处事器用什么来搭建呢?
tomcat?可以,可是tomcat主要处理惩罚jsp较量好,图片文件是静态资源,处理惩罚起来机能一般般
Apache?可以,纯C语言开拓的,没问题,可是还不足好
nginx?对了,这个是今朝较量风行的一个反向署理处事器,我在之前的文章有简朴先容过(http://www.cnblogs.com/leechenxiang/p/5327086.html)
理论的单台机子并发能到达5万,很是的叼,实际测试是2w阁下
安装如下的方案去做,那么图片处事器就问题不大了,
虽然,图片上传后,需要把图片的路径地点生存到数据库啊~~
我曾经见到过一套电子商务系统的图片上传是回收方案是雷同1的,这么做没问题,
可是呢,图片居然上传到他喵的MySQL某个表的某个字段中的,你妹啊,,我的天呐!
怎么可以这么做,况且数据库没有分库分表分区建索引,好吧,这也是我的一个吐槽点,谁叫我曾经参加过呢
好吧,说了这么多都是理论,接下来的文章会详细说说怎么做。