最近常常有人问图片上传怎么做,有哪些方案做较量好,也看到过有关于上传图片的做法,可是都不是最好的,本日再这里简朴讲一下Nginx实现上传图片以及图片处事器的大抵理念。
假如是小我私家项目可能企业小项目,仅仅只有十来号人利用的小项目,可以利用如下方案:
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
用户会见系统,利用上传图片成果,那么图片就上传到你的当前项目地址的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某个表的某个字段中的,你妹啊,,我的天呐!
怎么可以这么做,况且数据库没有分库分表分区建索引,好吧,这也是我的一个吐槽点,谁叫我曾经参加过呢
好吧,说了这么多都是理论,接下来的文章会详细说说怎么做。