http://www.yatan.com/group/topic.php?tid=20676
现在很多中小网站(尤其是 Web 2.0 站点) 都允许用户上传图片,如果前期没有很好的规划,那么随着图片文件的增多,无论是管理还是性能上都带来很多问题。就自己的一点理解,抛砖引玉,以期能引出更具价值的信息。
事关图片的存储
把图片存储到什么介质上? 如果有足够的资金购买专用的图片服务器硬件或者 NAS 设备,那么简单的很;如果有能力自己开发单独存储图片的文件系统,那么也不用接着往下看了。
如果上述条件不具备,只想在普通的硬盘上存储,首先还是要考虑一下物理硬盘的实际处理能力。是 7200 转的还是 15000 转的,实际表现差别就很大。是选择 ReiserFS 还是 Ext3 ,怎么也要测试一下吧? 创建文件系统的时候 Inode 问题也要加以考虑,选择合适大小的 inode size ,在空间和速度上做取舍,同时防患于未然,注意单个文件系统下文件个数别达到极限。
独立,独立的服务器
无论从管理上,还是从性能上看,只要有可能,尽量部署独立的图片服务器。这几乎成为常识了(不过在我做过面向 Web 的项目之前就这个问题也被人笑话过)。具备独立的图片服务器或者服务器集群后,在 Web 服务器上就可以有针对性的进行配置优化。比如采用传说中更有效率的 Lighttpd 。
如果不想在几台机器间同步所有图片,只用 NFS 模式共享一下即可。注意软、硬连接可能带来的问题,以及 NFS 特定的传输速度。
独立,独立的域名
如果大部分 Web 页面必须要载入很多图片,那么需要注意 IE 浏览器的连接数问题(参见对该问题的测试)。
前几天有个朋友在线上问我,"一些大网站,图片服务器为什么都用另外一个域名? 比如yahoo.com 图片服务器用了 yimg.com 的域名?" ,粗糙一点的答案:除了管理方便,便于CDN 同步处理,上面说的 IE 连接数限制也是个考虑因素吧(其他原因我也不知,有请 Yahoo!的同学发言)
雅虎 Web 优化 14 条
关于雅虎 YSlow 工具倡导的 优化 14 条规则,建议每个 Web 维护人员必须倒背如流,当然也应该辩证来看--介绍这 14 条规则的页面本身也只能得到 70 多分...其中的第九条和上面说的独立域名之间多少有些矛盾。实际情况要根据自己的 Benchmark 与具体需求而确定了。
有效利用客户端 Cache
很多网站的 UI 设计人员为了达到某些视觉效果,会在一些用户需要频繁访问的页面模块上应用大量的图片。这样的情况,研究表明,对于用户粘度比较高的站点, 在Web 服务器上对这一类对象设置 Expires Header 就是十分有必要的,大量带宽就这么节省下来,费用也节省了下来。顺便说一下,对于验证码这样的东西,要加个简单的规则过滤掉。
服务器端的 Cache
在国内,CDN 也是有钱才能玩得起。而类似 Amazon S3 这样的一揽子存储服务,国内还没有出现。所以,充分利用服务器端的 Cache 也是有必要的。Squid 作为反向代理服务器,缓冲图片效果应该说尚可,新浪技术团队贡献的 Ncache 据评测,效果更佳。
高解析图片问题
如果网站存在大量高解析度的图片,那么有必要考虑部署 IIPImage 或者类似的软件。
运营问题
很多比较有规模的网站对于用户上传的图片不做任何处理,结果页面上还能看到很多 BMP 格式的图片(个人觉得任何网站出现 BMP 格式的图片都是可耻的)...这完全是运营上的策略之误了。找个程序员投入一点时间写个图片处理模块,对那些"截屏"得来的图片做个转换,投入成本可能远比存储上的开销小,而用户再访问该图片,质量未必能有什么损失,浏览速度无疑好多了。哪种处理方式更让人接受,不言而喻。
我的想法:现在谈后面的图片服务器之类的都是遥远的事情,但是从独立域名来讲,还不是很明白为什么能减少IE的连接数,看样子需要研究一下子,在者,当前可以做的事情,就是客户端cache和服务器端cache以及通过一些程序手段减少连接数。但是bmp的问题,确实不知道。看样子需要注意的。
但是现在面对具体的设计问题,却很棘手,我察看了sina,sohu等网站,他们基本上使用的是静态文本加上将图片存储到文本相同目录这种方式,对于后台是否进行了数据库关联,不得而知,但是从显示的角度,最起码这种方式确实是最快的。但是我们是属于交互式网站,对于信息的交互要求很高,所以这种门户类型是不适合我们的,因为我们不可能让每个文章以及对应的回复都产生一个静态文件,毕竟这个时间很长,用户根本无法忍受。xici同样也是采用sina,sohu门户的做法,但是他对于用户图片上传的地方所做的工作挺好的。他是启用单独的子域名来存储图片,但是子域名后面的地址是一样的,问题是,不管是回复还是主贴,他都是最终一个静态文件,疑惑的就是难道他每一次回复或者发帖都是生成或者从新生成一个静态文件,亦或者采用模板技术?不知道。
分享到:
相关推荐
在互联网世界中,Web图片服务器扮演着至关重要的角色。它们负责存储、管理和分发网站所需的图像资源,确保用户能够快速、高效地加载和查看图片。本文将深入探讨Web图片服务器的相关知识点,帮助你理解其工作原理、...
在当前的互联网环境中,Web图片服务器扮演着至关重要的角色,特别是在Web 2.0网站上,用户上传图片已经成为常见的互动形式。然而,如果没有充分的规划,随着图片数量的增长,管理和性能问题将日益突出。以下是对Web...
【cloudimg:Web图片服务器详解】 在互联网领域,图片服务是不可或缺的一部分,它涉及到网站的用户体验、内容加载速度以及资源管理等多个方面。"cloudimg"作为一个Web图片服务器,旨在提供高效、安全且易于管理的...
在这个特定的案例中,"C#网站图片服务器"是指一个基于C#开发的系统,它专门用于处理与图片相关的操作,如上传、剪切和缩放。这个系统可能是一个服务器端组件,集成在网站后端,为用户提供图片管理服务。以下是一些...
2. Web服务器:Web服务器负责接收HTTP请求,并返回HTML文档或其他资源,如图片、JavaScript、CSS等,以供浏览器解析和显示。 二、简单搭建Web服务器的工具 1. Apache:Apache HTTP Server是最流行的开源Web服务器,...
Web服务器是互联网基础设施的重要组成部分,它们负责接收HTTP(超文本传输协议)请求,并返回相应的网页内容或其他资源,例如图片、视频或静态文件。 【描述】"实现WEB服务器的源代码程序,在网络上找了很久才找到...
在互联网技术中,Web服务器是接收HTTP(超文本传输协议)请求,并返回HTML页面、图片、视频等资源的软件。本文将详细介绍Web服务器的基本概念、重要性以及常用搭建工具。 一、Web服务器基本概念 1. Web服务器:Web...
易语言简易WEB服务器是一款基于易语言开发的简单网络服务器软件,主要目标是为初学者提供一个学习和理解HTTP协议、网络编程以及服务器构建基础的平台。这个源码可以帮助开发者了解如何处理HTTP请求,如何响应客户端...
Web服务器和应用程序服务器是两种不同的服务类型,它们在互联网应用中扮演着各自的关键角色。本文将详细解释这两者的概念、功能以及它们之间的差异。 首先,Web服务器主要负责处理HTTP协议,它的核心任务是接收来自...
Linux下基于C++的轻量级Web服务器; (1)使用 线程池 + 非阻塞socket + ...(3)访问服务器数据库实现web端用户注册、登录功能,可以请求播放服务器图片和视频文件; (4)实现同步/异步日志系统,记录服务器运行状态
Web服务器是一种软件,它负责接收来自互联网用户的HTTP(Hypertext Transfer Protocol)请求,并返回相应的HTML页面或其他资源,如图片、视频等。当我们在浏览器中输入网址并按下回车键时,实际上是向Web服务器发送...
5. **静态资源**:静态资源是指不通过服务器端动态生成的网页内容,如HTML、CSS、JavaScript、图片等。这些文件通常预先存在于服务器上,由Web服务器直接发送给客户端。 6. **IntelliJ IDEA与Eclipse**:这两个都是...
Web服务器是一种软件,它接收HTTP(超文本传输协议)请求并返回HTTP响应,通常包含HTML文件、图片、视频等互联网资源。在安卓系统中,我们可以找到多种开源Web服务器实现,如Apache的Coyote、NanoHTTPD、CherryPy和...
1. **Web服务器基础**: Web服务器主要负责接收HTTP请求,这些请求通常来自浏览器或其他HTTP客户端,然后返回适当响应,如HTML文档、图片或动态生成的内容。它们通常是基于TCP/IP协议栈工作,并且理解HTTP协议的规范...
【标题】"WEB服务器 2.0 支持html 图片 资源下载" 提供的信息表明,这里讨论的是一个版本为2.0的WEB服务器,它具有处理HTML页面和图片资源的能力,允许用户进行资源下载。在互联网环境中,WEB服务器是用于托管网站和...
【易用WEB文件服务器】是一种简洁高效的文件服务器解决方案,它专为个人和小型企业设计,使得用户无需深入了解网络和服务器管理技术,也能轻松地在网络上共享和管理文件。这个服务器软件的核心功能是提供一个基于Web...
在IT领域,Web服务器和Tomcat服务器是两个关键的概念,它们在构建和部署Web应用程序时起着至关重要的作用。Web服务器主要处理HTTP协议,而Tomcat是一个应用服务器,特别是用于运行Java Servlet和JavaServer Pages...
Web服务器是一种软件,其主要功能是接收来自客户端(通常是Web浏览器)的HTTP请求,并返回相应的HTTP响应,这些响应可能包含HTML文件、图片、视频等网络资源。常见的Web服务器软件有Apache、Nginx、IIS等。 二、...
在Android平台上,将图片上传到Web服务器是一项常见的任务,尤其在开发涉及用户交互的应用时,如社交应用、电商应用等。这个"android上传图片到web服务器"的示例提供了使用HttpPost和MultiPartEntity方法实现这一...
由于只支持HTML文件,对于其他类型的文件(如图片、CSS或JavaScript),该服务器可能无法正确处理。 学习这个项目可以让你理解Web服务器的基本工作原理,包括如何处理HTTP请求、构建响应,以及如何进行文件I/O操作...