现在很多中小网站(尤其是 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!的同学发言) 【还有一个我没考虑到的是 Cookie 的因素,参加楼下高春辉的留言】
雅虎 Web 优化 14 条
关于雅虎 YSlow 工具倡导的 优化 14 条规则,建议每个 Web 维护人员必须倒背如流,当然也应该辩证来看--介绍这 14 条规则的页面本身也只能得到 70 多分...其中的第九条和上面说的独立域名之间多少有些矛盾。实际情况要根据自己的 Benchmark 与具体需求而确定了。
有效利用客户端 Cache
很多网站的 UI 设计人员为了达到某些视觉效果,会在一些用户需要频繁访问的页面模块上应用大量的图片。这样的情况,研究表明,对于用户粘度比较高的站点, 在Web 服务器上对这一类对象设置 Expires Header 就是十分有必要的,大量带宽就这么节省下来,费用也节省了下来。顺便说一下,对于验证码这样的东西,要加个简单的规则过滤掉。
服务器端的 Cache
在国内,CDN 也是有钱才能玩得起。而类似 Amazon S3 这样的一揽子存储服务,国内还没有出现。所以,充分利用服务器端的 Cache 也是有必要的。Squid 作为反向代理服务器,缓冲图片效果应该说尚可,新浪技术团队贡献的 Ncache 据评测,效果更佳。
高解析图片问题
如果网站存在大量高解析度的图片,那么有必要考虑部署 IIPImage 或者类似的软件。
运营问题
很多比较有规模的网站对于用户上传的图片不做任何处理,结果页面上还能看到很多 BMP 格式的图片(个人觉得任何网站出现 BMP 格式的图片都是可耻的)...这完全是运营上的策略之误了。找个程序员投入一点时间写个图片处理模块,对那些"截屏"得来的图片做个转换,投入成本可能远比存储上的开销小,而用户再访问该图片,质量未必能有什么损失,浏览速度无疑好多了。哪种处理方式更让人接受,不言而喻。
分享到:
相关推荐
3. 如果拥有多台图片服务器,要考虑服务器之间的图片同步问题。 4. 使用独立域名。 5. 制定合理的缓存策略。 6. 使用图片处理模块对用户上传的图片进行再加工。 图片服务器的架构可以分为多个部分,包括图片服务器...
在互联网技术领域,"页面静态化"和"图片服务器分离"是两个重要的优化策略,旨在提升网站性能,降低服务器压力,提高用户体验。 首先,我们来深入理解“页面静态化”。页面静态化是一种将动态网页转化为静态HTML页面...
网站架构设计对于处理大规模用户访问至关重要,涉及到多个层面的技术优化,包括页面静态化、图片服务器分离、数据库集群和库表散列、缓存策略、负载均衡以及镜像等。以下是对这些关键知识点的详细说明: 1. **页面...
标题中的“注解实现SSH2图片服务器分离上传下载”指的是在软件开发中,利用Java的注解机制来实现与SSH2(Secure Shell v2)协议相结合的图片服务器功能。SSH2是一种广泛使用的网络协议,主要用于安全地进行远程登录...
【大型WEB网站架构深入分析图片服务器分离】 在构建大型Web网站时,图片服务器分离是一个重要的设计决策,旨在优化性能、提高稳定性和可扩展性。图片服务器的分离将图片的存储和传输从主Web服务器中独立出来,从而...
【大型WEB网站架构深入分析-图片服务器分离】 大型WEB网站在提供丰富内容的同时,往往需要处理大量的图片数据,这些图片占据了网页传输中的大部分流量,对网站性能的影响显著。因此,图片服务器分离成为优化网站...
在IT行业中,前后端分离是一种常见的开发模式,它将用户界面和服务器端逻辑分离开来,使得前端专注于用户体验,而后端则专注于数据处理。在这个场景下,"若依(ruoyi)"是一个知名的开源框架,它提供了丰富的管理后台...
因此,搭建图片服务器成为了解决这一问题的关键步骤。图片服务器不仅能集中存储和管理图片资源,还能通过FTP或SFTP服务方便地对图片进行上传、下载等操作。同时,利用Nginx的HTTP服务器功能进行动静分离,可以提高...
高并发情况下,图片服务器分离架构成为了解决问题的关键技术之一。 图片服务器分离,即将存储和处理图片的部分从网站的主服务器中独立出来,专门构建图片服务器,利用图片服务器集群来满足高并发的请求。这种架构的...
本文将深入解析网站架构中的三项关键技术:页面静态化、图片服务器分离以及负载均衡,并探讨它们如何协同工作以提升网站性能。 #### 1. 页面静态化 页面静态化是一种提高网站访问速度的有效手段。通过将动态生成的...
【标题】:“基于C# .NET的分布式图片服务器项目” 在现代互联网应用中,随着用户量和数据量的持续增长,传统的单机图片服务器已经无法满足高效、稳定的服务需求。因此,分布式图片服务器应运而生,它通过将图片...
电商网站中,图片占流量90%以上,图片和业务服务器分离是必不可少的;...本资源简单介绍图片服务器和业务服务器分离的思想,实现图片上传和下载完全不通过业务服务器,且图片服务器可以完全平滑扩展
基于SpringBoot的文件上传系统,前后端分离,单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 项目经过严格测试,确保可以运行! 采用前后端分离的方式进行开发,实现了几种常用的文件上传功能...
然而,在前后端分离的项目中,编辑器通常部署在前端服务器,而图片上传服务可能在单独的API服务器上,这就导致了跨域问题。 UEditor默认使用WebUploader组件进行图片上传,而WebUploader依赖于XMLHttpRequest(xhr...
图片服务器分离大家知道,对于Web服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是我们有必要将图片与页面 进行分离,这是基本上大型网站都会采用的策略,他们都有独立的图片服务器,甚至很多...
Nginx动静态分离是将静态资源(如图片、CSS、JavaScript文件)与动态资源(如PHP、Python、Ruby等)分离的技术,目的是为了提高服务器的性能和安全性。下面是对Nginx动静态分离的详细介绍。 什么是Nginx动静态分离 ...
*** MVC是一种基于.NET平台构建Web应用程序的模式,它以模型-视图-控制器(Model-View-Controller,简称MVC)为架构模式,分离关注点,强调了代码的组织和可维护性。在Web应用开发中,图片上传和预览显示是一项非常...
图片的二进制数据可能直接存储在BLOB类型字段,或者存储在服务器文件系统,并仅存储路径在数据库中。 8. **图片显示**: 图片上传后,用户可能需要查询并显示已上传的图片。这可以通过Servlet或JSP实现,从数据库...