转:Linux下使用Nginx搭建简单图片服务器
最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的,今天再这里简单讲一下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某个表的某个字段中的,你妹啊,我的天呐!
怎么可以这么做,何况数据库没有分库分表分区建索引,好吧,这也是我的一个吐槽点,谁叫我曾经参与过呢
好吧,说了这么多都是理论,接下来的文章会具体说说怎么做。
Nginx创建虚拟静态服务器 http://www.linuxidc.com/Linux/2016-04/130373.htm
更多Nginx相关教程见以下内容:
CentOS 6.2实战部署Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm
使用Nginx搭建WEB服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm
搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm
CentOS 6.3下Nginx性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm
CentOS 6.3下配置Nginx加载ngx_pagespeed模块 http://www.linuxidc.com/Linux/2013-09/89657.htm
CentOS 6.4安装配置Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm
Nginx安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm
Nginx日志过滤 使用ngx_log_if不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm
转:Linux下使用Nginx搭建简单图片服务器的更多相关文章
- linux下安装EJBCA 搭建私有CA服务器
linux下安装EJBCA 搭建私有CA服务器 EJBCA是一个全功能的JAVA的CA系统软件,我们可以用此搭建私有CA服务器: 一:首先我的测试环境: 1. linux mint18.3 62位: ...
- linux下Flask框架搭建简单网页
开始安装FLASK需要创建一个虚拟环境,虚拟环境可以不干扰正在使用的系统环境,避免影响,并且也不需要完全的root权限,更加安全可靠. 搭建环境 Python3.4 进入到microblog目录下创建 ...
- Centos7 下nginx 搭建文件图片服务器
现在服务器部署nginx yum install -y epel-release yum install nginx -y 安装完成之后 访问ip 由此可见nginx服务是可用的 修改nginx的配置 ...
- linux下用python搭建简单的httpServer
1.服务器端:python -m SimpleHTTPServer 12000 python -m : 相当于import,当做模块来启动; 后面的12000代表的是端口 使用浏览器打开如下: 2. ...
- Nginx搭建简单文件下载服务器
在C:\pleiades\nginx-1.16.1下新建一个目录files,然后放入若干文件,接下来修改nginx.conf,增加粗体字如下: #user nobody; worker_process ...
- nginx搭建简单直播服务器
1.下载模块(nginx-rtmp-module) 1 cd /data/nginx 2 yum install git3 git clone https://github.com/arut/ngin ...
- Linux yum的配置 , python环境管理, nginx搭建简单学习
Linux yum的配置 , python环境管理, nginx搭建简单学习 一丶配置yum的数据仓库 ### yum 工具, 方便,自行解决软件之间的依赖关系. # 配置yum源仓库 (可以使用,清 ...
- Nginx 在 Linux 下安装与搭建集群
搭建集群图例 集群搭建图如下,为了简单一点,使用一个Nginx服务器+两个Tomcat服务器,省略数据库部分: 环境说明 Linux 为 CentOS 7.2 发行版 + Java jdk 1.8 + ...
- Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具)
Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具) 最近因为项目关系,收朋友之托,想制作秀场网站,但是因为之前一直没有涉及到这 ...
随机推荐
- Spring + MySQL + Mybatis + Redis【二级缓存】执行流程分析
一级缓存基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就 ...
- 线程池ThreadPoolExecutor使用
一.简介 线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize, int ...
- 链接程序的时候遇到问题:fatal error LNK1104: cannot open file 'rctrl-d.lib'
1.lib库文件没有添加到工程中(工程里面根本就没有这个文件) 2.
- Chrome也疯狂之Vimium插件
Chrome也疯狂之安装Vimium插件 由于最近换上了Mac,深感外设的累赘,脱离了外接鼠标以及键盘之后发现操作更加的流畅了(可怜我入手不到一年的机械键盘).当然脱离鼠标用触摸板来操作浏览器有时候还 ...
- 「日常训练」 神、上帝以及老天爷 (HDU 2048)
题意 数论中的错排问题.记错排为Dn" role="presentation">DnDn,求Dnn!" role="presentation&q ...
- C++学习005-循环
C++在循环方面,感觉个C没有身边么区别 while循环 for循环 do while循环 其实 使用Goto也可以写个循环 编写环境vs2015 1. while循环 int main() { in ...
- 不得不服!Python速度虽然慢,但是它工作效率很高!
写在前面 让我们来讨论一个我最近一直在思考的问题:Python 的性能.顺便说一下,我是 Python 的忠实拥趸,我在各种情况下都会积极尝试使用 Python 来解决问题.大家对 Python 最大 ...
- Ajax请求被缓存的几种处理方式
Ajax请求被缓存的几种处理方式 我们都知道IE会针对ajax请求的地址缓存请求结果,直到缓存过期之前,针对相同地址发出的请求,只有第一次会请求会真正发送到服务端.在某种情况下,这种缓存机制确实能提高 ...
- 深度学习-CNN tensorflow 可视化
tf.summary模块的简介 在TensorFlow中,最常用的可视化方法有三种途径,分别为TensorFlow与OpenCv的混合编程.利用Matpltlib进行可视化.利用TensorFlow自 ...
- GraphSAGE 代码解析(二) - layers.py
原创文章-转载请注明出处哦.其他部分内容参见以下链接- GraphSAGE 代码解析(一) - unsupervised_train.py GraphSAGE 代码解析(三) - aggregator ...