最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的

今天再这里简单讲一下上传图片以及图片服务器的大致理念

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

用户访问系统,使用上传图片功能,那么图片就上传到你的当前项目所在的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某个表的某个字段中的,你妹啊,我的天呐!

怎么可以这么做,何况数据库没有分库分表分区建索引,好吧,这也是我的一个吐槽点,谁叫我曾经参与过呢

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

nginx 一二事(1) - 简单图片服务器解决方案的更多相关文章

  1. 转:Linux下使用Nginx搭建简单图片服务器

    最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的,今天再这里简单讲一下Nginx实现上传图片以及图片服务器的大致理念. 如果是个人项目或者企业小项目,仅 ...

  2. Hadoop 一二事(1) - 简单介绍与杂谈

    大数据大数据,身边很多朋友都在谈大数据,Big Data!!! 到底是什么,用来干嘛的,也很少有人说得出一二,那今天开始就简单说说这一二事吧 hadoop 的来源:是作者女儿的一个玩具 - 一只黄色的 ...

  3. nginx 一二事(2) - 创建虚拟静态服务器

    一.什么是nginx 是一个C语言开发的HTTP反向代理服务器,性能非常高 一个俄罗斯的哥们开发的,官方提供的测试性能能够达到5W的并发,我的天呐~,实际测试差不多是2W,而淘宝的牛人可以优化到200 ...

  4. nginx 与 tomcat 集群 一二事 (0) - 简单介绍

    最近看了nginx以及tomcat的集群,通俗的做一下简单总结吧 nginx 是一个http服务器,是由俄罗斯人发明的,目前主流的服务器,作为负载均衡服务器,性能非常好,最高支持5万个并发连接数,在淘 ...

  5. WINDOWS下nginx实现本地支持的图片服务器反向代理

    最近在学习nginx的反向代理和负载均衡的运用时,觉得挺简单的,但是还是想写一篇博客用于记录自己的学习过程. 好的,我们进入正题 Nginx(engine x) 是一个高性能的HTTP和反向代理服务器 ...

  6. nginx 一二事(3) - 反向代理以及负载均衡

    先来说说正向代理 就是普通的代理,记得高中年代偷跑去网吧是要办卡的 题外话: 就是这货...相信很多80同龄人都有吧...    回到正题,那正向代理就不让你直接访问网络,而需要登录一下网吧的某个系统 ...

  7. 使用Ueditor上传图片到图片服务器(二)

    上一篇主要写了前端部分如何配置ueditor的上传路径,已经jsp页面中如何使用ueditor的编辑器功能以及如何配置单独的图片上传功能. 这一篇,我分两部分:第一部分是搭建图片服务器以及配置ftp上 ...

  8. nginx搭建简单的图片服务器

    传统项目一般实现图片上传的话,都会在tomcat下面建立一个图片文件夹,上传成功后,用户可以直接访问, http://ip:port/project/images/xxx.jpg; 这样在用户量少的时 ...

  9. Nginx,Nginx 搭建图片服务器

    Nginx Nginx 概述 反向代理 工作流程 优点 1:保护了真实的web服务器,保证了web服务器的资源安全 2:节约了有限的IP地址资源 3:减少WEB服务器压力,提高响应速度 4:其他优点 ...

随机推荐

  1. 使用Jsoup解析html网页

    一.   JSOUP简介 在以往用java来处理解析HTML文档或者片段时,我们通常会采用htmlparser(http://htmlparser.sourceforge.net/)这个开源类库.现在 ...

  2. 【OpenCV】选择ROI区域

    问题描述:在测试目标跟踪算法时,需要选择不同区域作为目标,进行目标跟踪,测试目标跟踪的效果. 解决思路: 1.OpenCV中提供了鼠标交互控制,利用setMouseCallback()给固定的窗口设置 ...

  3. NullPointerException at android.widget.AbsListView.obtainView at android.widget.ListView.makeAndAddView

    使用ExpandableListView的时候,报如下错.网上搜索发现原来是在CommonNumberQueryAdapter的getGroupView()方法里返回的是null,注意细节哦!!! 1 ...

  4. JY游戏之毁经典《扫雷》

    JY游戏之毁经典<扫雷> 这是一个经典的pc端游戏,一定的运气加一点数学常识,讲的是一个速度,这次,我利用js JY库重做了这款游戏,加了三次生命,过关难度,也兼容了移动端的触摸事件. 它 ...

  5. 用javascript实现全选/反选组件

    以下是本人制作的全选/反选 组件,供广大同行参考.指正: 效果如图: 在实现的过程中,全选和全部取消选中这两个功能较为简单,只需用for循环遍历所有复选框为true或false即可.反选也较为简单,也 ...

  6. 2004-输入一个百分制的成绩t,将其转换成对应的等级

    ,具体转换规则如下: 90~100为A; 80~89为B; 70~79为C; 60~69为D; 0~59为E; 如果输入数据不在0~100范围内,请输出一行:“Score is error!”. 这题 ...

  7. Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39

    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39 V1  初步实现sina csdn cnblogs V2  实现qzone sohu 的发帖 ...

  8. SPServices.SPDisplayRelatedInfo

    Function $().SPServices.SPDisplayRelatedInfo Certification Functionality SPDisplayRelatedInfo is a f ...

  9. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q48-Q50)

    Question 48You create a user control named MySearchBox.ascx.You plan to change the native search con ...

  10. Android源码分析之HandlerThread

    HandlerThread是一种特殊的Thread,也就是有Looper的thread,既然有looper的话,那我们就可以用此looper来 创建一个Handler,从而实现和它的交互,比如你可以通 ...