转: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

时间: 2024-12-27 23:55:21

转:Linux下使用Nginx搭建简单图片服务器的相关文章

Linux下使用Apache搭建Web网站服务器

Linux下使用Apache搭建Web网站服务器 实验目标 apache服务器常见概念 apache服务器安装及相关配置文件 实战: 例1:为公司内网搭建一个web服务器 例2:取消apache默认欢迎页: 例3:使用rpm搭建lamp 环境 例4, 使用别名,引用网站根目录以外的路径. 例6:打开软链接功能. 通过软件链接直接引用网站根目录以外的内容 例5,当一个目录下没有默认首页时,访问http://192.168.1.63/phpmyadmin/禁止显示目录列表 例7:通过用户认证的方式,

linux下Flask框架搭建简单网页

开始安装FLASK需要创建一个虚拟环境,虚拟环境可以不干扰正在使用的系统环境,避免影响,并且也不需要完全的root权限,更加安全可靠. 搭建环境 Python3.4 进入到microblog目录下创建一个虚拟环境 python -m venv flask 一些系统中可能需要使用命令Python3 Python2.7则需要安装虚拟环境 sudo apt-get install python-virtualenv 创建虚拟环境 virtualenv flask 进入flask目录下的bin然后安装f

nginx搭建访问图片服务器

本文试验环境在Ubuntu16.04下 1.首先在终端输入 sudo apt-get install nginx 2.安装完成后测试,输入下面的命令,或者打开浏览器输入http://localhost curl localhost 显示欢迎界面表示安装成功 3.在/home/lemon/Documents下新建一个images文件夹,并随便下载几张图片,命名为1.jpg,2.jpg... 4.进入/etc/nginx/site-enabled/目录下,将default文件进行备份,然后输入下面的

Linux下Apache+tomcat搭建负载均衡服务器集群

之前在我的博客里面写了一篇文章http://blog.csdn.net/yannanying/article/details/43018175,本文就是为了补充当时的那篇文章而写.我记得当时是参考百度经验里面的一篇文章写的,文章地址为http://jingyan.baidu.com/article/ab0b5630b632dbc15afa7dc4.html,寒假的时候按照这篇文章的相关内容搭建了Apache+tomcat服务器集群,当时是弄成功了,回到学校后再次想尝试一下怎么搭建,但是发现自己记

Nginx 在 Linux 下安装与搭建集群

搭建集群图例 集群搭建图如下,为了简单一点,使用一个Nginx服务器+两个Tomcat服务器,省略数据库部分: 环境说明 Linux 为 CentOS 7.2 发行版 + Java jdk 1.8 + Tomcat 1.8 + Nginx 1.15 Linux 下安装 Nginx 下载nginx的tar包 //下载tar包 wget http://nginx.org/download/nginx-1.13.7.tar.gztar -xvf nginx-1.13.7.tar.g 安装gcc依赖Ng

Linux下的路由器搭建(超级详细的图文教程)

Linux 下的路由器搭建方法 [写在前面] 从22号中午开始琢磨zebra/quagga的用法,一直到晚上11点多都没有什么头绪.各种Google,百度,几近崩溃.由于网上关于zebra/quagga的配置方法都是在真实的若干台电脑上实现的,一直都没有找到完全在虚拟机上进行测试的教程,相当失望.所以,我就决定,如果我要是能够利用多台虚拟机完成实验的内容,我一定要写一个详细的文档放到我的博客上.没有办法,索性自己慢慢摸索吧,但花了一天也没有成功.直到快睡觉时才突然想到,会不会跟我在Virtual

玩玩负载均衡---在window与linux下配置nginx

最近有些时间,开始接触负载均衡方面的东西,从硬件F5再到Citrix Netscalar.不过因为硬件的配置虽然不复杂,但昂贵的价格也让一般用户望而却步(十几万到几十万),所以只能转向nginx,squid这类有反向代理功能的软件了.好在其设置都不是很麻烦. 本文就之前所做过的安装和配置步骤做一下总结分享出来,以免日后忘记了.      首先是windows系统,这里建议使用window 2003企业版,而不要作用win7(太新了,我遇到无法启动nginx的问题).要说的是,在windows下配

linux下Oracle11g RAC搭建(九)

八.创建ASM仓储 同样在图形化界面操作 [[email protected] ~]#  su - grid [[email protected] ~]$ asmca   //创建两个磁盘组:数据文件磁盘组和快速恢复区磁盘组 [[email protected] ~]$ cd /u01/11.2.0/grid/bin                 //asmca的路径 [[email protected] ~]$ asmca -bash: asmca: command not found //

【转】玩玩负载均衡---在window与linux下配置nginx

最近有些时间,开始接触负载均衡方面的东西,从硬件F5再到Citrix Netscalar.不过因为硬件的配置虽然不复杂,但昂贵的价格也让一般用户望而却步(十几万到几十万),所以只能转向nginx,squid这类有反向代理功能的软件了.好在其设置都不是很麻烦. 本文就之前所做过的安装和配置步骤做一下总结分享出来,以免日后忘记了.      首先是windows系统,这里建议使用window 2003企业版,而不要作用win7(太新了,我遇到无法启动nginx的问题).要说的是,在windows下配