使用Nginx搭建简单图片服务器

最近常常有人问图片上传怎么作,有哪些方案作比较好,也看到过有关于上传图片的作法,可是都不是最好的,今天再这里简单讲一下Nginx实现上传图片以及图片服务器的大体理念。html

若是是我的项目或者企业小项目,仅仅只有十来号人使用的小项目,可使用以下方案:linux

用户访问系统,使用上传图片功能,那么图片就上传到你的当前项目所在的tomcat服务器上,在/image下,上传成功后用户能够直接访问nginx

http://ip:port/project/images/xxx.jpg数据库

这样作在用户少的时候是没有问题的tomcat

 

当你的企业发展起来了,业务量增多了,使用的这个项目开始大起来了,发现系统速度变慢了,那么你就考虑到集群了对吧服务器

那么好,假设你增长了一个tomcatB,性能提升了一点,图片也成功上传了,作了负载均衡,假设图片上传的了tomcatA(用户是不知道的)session

第二次访问的时候(先不考虑session粘性不粘性的问题,假设是共享的),用户访问到了tomcatB,图片没有了,是个大叉叉,并发

个人天呐!发什么什么事了,明明刚刚上传的图片没有了,负载均衡

再刷新一下,欸!又有了?这是什么状况呢?jsp

后台知道咋回事,可是用户不知道啊!!!

 

那么解决方案是这样的,tomcatA和B上传至图片服务器,这用户请求的时候只访问图片服务器的路径,这样就没问题了

有人会问图片服务器用什么来搭建呢?

tomcat?能够,可是tomcat主要处理jsp比较好,图片文件是静态资源,处理起来性能通常般

Apache?能够,纯C语言开发的,没问题,可是还不够好

nginx?对了,这个是目前比较流行的一个反向代理服务器,我在以前的文章有简单介绍过(http://www.cnblogs.com/leechenxiang/p/5327086.html

  理论的单台机子并发能达到5万,很是的叼,实际测试是2w左右

安装以下的方案去作,那么图片服务器就问题不大了,

 

固然,图片上传后,须要把图片的路径地址保存到数据库啊~~

我曾经见到过一套电子商务系统的图片上传是采用方案是相似1的,这么作没问题,

可是呢,图片竟然上传到他喵的MySQL某个表的某个字段中的,你妹啊,个人天呐!

怎么能够这么作,况且数据库没有分库分表分区建索引,好吧,这也是个人一个吐槽点,谁叫我曾经参与过呢

 好吧,说了这么多都是理论,接下来的文章会具体说说怎么作。

Nginx建立虚拟静态服务器 http://www.linuxidc.com/Linux/2016-04/130373.htm

相关文章
相关标签/搜索