文档章节

图片服务器架构

周进
 周进
发布于 2013/01/05 17:59
字数 813
阅读 1146
收藏 36
      现在很多中小网站都允许用户上传图片,如果前期没有很好的规划,那么随着图片文件的增多,无论是管理还是性能上都带来很多问题。就自己的一点理解纯属理论,没经验证,谨慎参考。
在当前的经济形势下,遵循“少花钱、多办事”的原则,采用纯Open Source的方案,不增加软件投入。
图片的存储硬件
把图片存储到什么介质上? 如果有足够的资金购买专用的图片服务器硬件或者 NAS 设备,那么简单的很; 如果上述条件不具备,只想在普通的硬盘上存储,首先还是要考虑一下物理硬盘的实际处理能力。是 7200 转的还是 15000 转的,实际表现差别就很大。是选择 ReiserFS 还是 Ext3 ,怎么也要测试一下吧? 创建文件系统的时候 Inode 问题也要加以考虑,选择合适大小的 inode size ,在空间和速度上做取舍,同时防患于未然,注意单个文件系统下文件个数别达到极限。
图片存储的技巧
      图片服务器当前用年份来划分,每年增加两台服务器,亦可是加两块硬盘;因为旧数据2006和2007年的数据基本上是没有变化的,图片不存在修改,如果细心定制,那么旧图片服务器的硬盘99%塞满是可以的,旧数据的容量基本上不会大幅增长,小小预留1-2G空间就可以了.
单独的图片服务器域名
比如yahoo.com 图片服务器用了 yimg.com 的域名,这样可以减少上行的头信息,应用服务器也不用检查权限.
单独多个图片服务器
无论从管理上,还是从性能上看,只要有可能,尽量部署独立的图片服务器。在 Web 服务器上就可以有针对性的进行配置优化。比如在选择web服务器时,只考虑处理图片的效率.
图片共享
如果不想在几台机器间同步所有图片,只用 NFS 模式共享一下即可。注意软、硬连接可能带来的问题,以及 NFS 特定的传输速度。
采用操作系统层分布式文件系统本身的同步功能
     采用应用层分布式文件系统同步方案:FastDFSMogileFSHadoop HDFS
     采用应用层第三方软件同步方案:csync2+inotify、rsyncunisonDRBDtsync
http服务器的选择
    采用轻量级的Lighttpd、Nginx,不采用apache,apache最消耗内存.
Cache及反向代理

    Squid

    Lighttpd+mod_mem_cache

数据压缩

    HTTP HEADER的Accept-Encoding

客户端缓存

     HTTP HEADER的Expires、Cache-Control、Etag、Last-Modified参数设置

应用层优化
    图片按需生成、图片预先生成、根据应用场景降低图片分辨率
图片处理工具的选择
可能大多数网站都是选择 ImageMagick 做为基础库,如果图片处理量巨大,性能问题又怎能不考虑?
防盗链

       图片相当占用资源,一定要做好防盗链

本文转载自:http://blog.csdn.net/jiangfeng08/article/details/7646663

周进
粉丝 16
博文 35
码字总数 5679
作品 0
成都
CTO(技术副总裁)
私信 提问
电商总结(四)基于共享存储的图片服务器架构

  在当前这个互联网的时代,不管何种网站,对图片的需求量越来越大,尤其在电商网站中,几乎都会面临到海量图片资源的存储、访问等相关技术问题。在对图片服务器的架构,扩展,升级的过程中...

章为忠
2016/03/08
0
0
浅谈内容分发网络CDN的架构于淘宝的应用

内容分发网络CDN CDN通过将网络内容发布到靠近用户的边缘节点,使不同地域的用户在访问相同网页时可以就近获取。这样既可以减轻源服务器的负担,也可以减少整个网络中的流量分布不均的情况,...

凌洛
2018/08/09
0
0
图片存储架构学习:独立的图片服务器,给爱一个独立的空间

前言 去年我凭着对网站架构的浓厚兴趣陆陆续续给大家分享了不少大型网站架构的经典案例,但是大部分都只是介绍了大概,并没有深入地研究,有兴趣的朋友可以去我博客的网站架构分类下学习讨论...

mj4738
2013/01/07
1K
0
一次架构失误的反思

我们公司的系统要做改造,以前是1台服务器,现在要换成4台服务器,我去的时候,运维已经把架构方案那些,都弄好了,都已经在测试了,大概架构如下: 请注意,这个和我们传统的架构是有区别的,...

zchd
2016/08/15
0
0
开源图片服务器--CshBBrainPP

CshBBrainPP 是一款基于JAVA的开源图片服务器,只提供上传图片和下载图片服务;基于NIO网络架构,和开源WebSocket服务器 宝贝鱼(CshBBrain)是师出同门,基于相同的网络架构,采用相同的分层结...

cshbbrain
2013/02/05
7.9K
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 文件类操作API与IO编程基础知识

阅读目录: https://www.w3cschool.cn/java/java-io-file.html Java 文件 Java 文件 Java 文件操作 Java 输入流 Java 输入流 Java 文件输入流 Java 缓冲输入流 Java 推回输入流 Java 数据输入...

boonya
25分钟前
3
0
SDKMAN推荐一个好

是在大多数基于Unix的系统上管理多个软件开发工具包的并行版本的工具。它提供了一个方便的命令行界面(CLI)和API来安装,切换,删除和列出sdk相关信息。以下是一些特性: By Developers, fo...

hotsmile
49分钟前
8
0
什么是 HDFS

是什么? HDFS 是基于 Java 的分布式文件系统,允许您在 Hadoop 集群中的多个节点上存储大量数据。 起源: 单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称...

Garphy
52分钟前
5
0
一起来学Java8(四)——复合Lambda

在一起来学Java8(二)——Lambda表达式中我们学习了Lambda表达式的基本用法,现在来了解下复合Lambda。 Lambda表达式的的书写离不开函数式接口,复合Lambda的意思是在使用Lambda表达式实现函...

猿敲月下码
今天
10
0
debian10使用putty配置交换机console口

前言:Linux的推广普及,需要配合解决实际应用方能有成效! 最近强迫自己用linux进行实际工作,过程很痛苦,还好通过网络一一解决,感谢各位无私网友博客的帮助! 系统:debian10 桌面:xfc...

W_Lu
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部