Nginx独立图片服务器搭建教程


发布时间:2014-06-04 编辑:脚本学堂


本文介绍了nginx独立图片服务器的搭建与配置教程,有需要的朋友参考下。


首先,为什么需要独立图片服务器

现在主流的网站都是有单独的图片服务器的,例如,人人网的为rrimg,淘宝的为taobaocdn,下面还有很多的二级域名

独立的图片服务器有诸多好处,其中一个就是客户端浏览器对一个主机下的连接数量限制,具体的连接数目忘记了,但基本都在10以下。

关键原因:
浏览器会控制一个站点下的并发请求数量在10以下,如果对于网站有很多样式文件、脚本文件和图片需要加载的话,请求的过程会被阻塞,影响网站的打开速度。 

建立图片服务器,将图片资源放在另外一个域名下面,会在一定程度上提升网站的打开速度,这样来说是否独立的服务器越多越好呢?
也不尽然,解析域名并建立连接也需要很长的时间,独立的主机多了的话,也不利于速度的提升。

图片往往会消耗掉网站中的很多宽带和IO资源,独立的图片服务器可以在宽带和IO性能上单独提升,便于管理和拓展。

关于网站性能方面的经验有很多,最为著名的就是雅虎的14条准则(http://developer.yahoo.com/performance/rules.html)。

其次,搭建独立图片服务器的思路是什么?

图片服务器的搭建思路也不难,我大概画了一个图,显示的是我最近两天搭建图片服务器的思路。

(图片服务器示意图)

网站服务器是Apache + Tomcat,以前图片的资源全部在tomcat的工程目录下面,随着图片数量的增多,对于图片的管理很不方便,网站的打开速度也不理想。

新的图片服务器用Nginx作为web server,可以参考文章:lighttpd、apachenginx的性能对比(http://www.blogjava.net/daniel-tu/archive/2008/12/29/248883.html)。

所面临的问题为用户上传图片的问题,因为上传的逻辑还是在原来的服务器上,因此,怎么同步两个服务器上的图片是个需要解决的问题。

往网站需要一张图片的多个尺寸来满足不同的需求,因此想到了将用户上传的源图片保存在网站服务器上,通过源图片来生成不同尺寸的图片通过ftp的方式保存到图片服务器上,源图片也相当于做了一个备份。

 java 操作ftp十分方便,这也是我选择用ftp的方式来同步图片的原因。

 所以,需要在图片服务器上搭建ftp服务(


 注意,red hat企业版有selinux,貌似是个安全机制,需要关掉这个才能上传。

 图片服务器上面搭建了tomcat容器的原因是网站需要的图片尺寸有将近20种,没有办法保存每个缩略图,因此用java来实现动态缩放图片的功能,就是类似于 190_h100_w200.jpg 这种格式,长宽随便换。具体的实现方法,有空再写吧。