June 3, 2010
反向代理登录?
"**反向代理(Reverse Proxy)**方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务 器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。\n通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务 器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设 计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的Web代理服务器不 支持外部对内部网络的访问请求。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就 表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据, 所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器 …"
June 3, 2010
分布式文件系统研究11:Google File System (1)
"Google File System\n前言\n没什么好说的,传说中的文件系统,当代网络超大容量分布式文件系统设计的典范,Google的核心竞争力所在。Google的Search、GMail、 video、blog spaces等等都是用这个技术做的。Google目前的中国区总裁李开复就认为学计算机的学生都应该看看Google File System。\n很佩服Google的开放精神,将GoogleFS的详细设计写成了Paper: The Google File System, ( http://labs.google.com/papers/GoogleFS-sosp2003.pdf) 作者是Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung。该论文长达15页,对Google FS介绍得非常详细,从设计时考虑的因素到详细的解决方案,以及测试和实际运行数据,都做了具体的说明,而不像IBM这么遮遮掩掩,从GPFS、 Storage Tank到TotalStorage SAN File System,一直都是小里小气的样子,生怕别人知道它做了啥。 …"
June 2, 2010
Hadoop分布式文件系统:架构和设计要点(翻译)
"Hadoop分布式文件系统:架构 和设计要点\n一、前提和设计目标\n1、硬件错误是常态,而非异常情况,HDFS可能是有成百上千的server组成,任何一个组件都有可能一直失效,因此错误检测和快速、自动的恢复是HDFS的核心架构目标。\n2、跑在HDFS上的应用与一般的应用不同,它们主要是以流式读为主,做批量处理;比之关注数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。\n3、HDFS以支持大数据集合为目标,一个存储在上面的典型文件大小一般都在千兆至T字节,一个单一HDFS实例应该能支撑数以千万计的文件。\n4、HDFS应用对文件要求的是write-one-read-many访问模型。一个文 件经过创建、写,关闭之后就不需要改变。这一假设简化了数据一致性问 题,使高吞吐量的数据访问成为可能。典型的如MapReduce框架,或者一个web crawler应用都很适合这个模型。\n5、移动计算的代价比之移动数据的代价低。一个应用请求的计算,离它操作的数据越近就越高效,这在数据达到海量级别的时候更是如此。将计算移动到数据附近,比之将数据移动到应用所在显然更好,HDFS提供给应用这样的接口。\n6、在 …"
June 2, 2010
网站海量小文件分布式系统架构方案
"网站文件的存储还是要讲究的,如果在网站成立初期,数据量不大就没有注意,随着时间的增长,网站的图片文件等数据肯定会越来越多,如何解决这些文件 存储也成了新的难题。如果把这些文件都完全采用大硬盘存储来解决,并不是一个好主意,因为数据量越大风险就越高,虽然文件能存得下,但是故障率相应会较 高,另外重建耗费时间也比较长。所以最好的办法是尽可能考虑分布式存储,把文件想办法利用网络分散到多个机器上。\n从我所了解的存储结构来看,分布式存储大致可以分为几种:\n1、类googlefs的分布式文件系统\n因为目前googlefs没有开源,所以网上出现的分布式文件系统都是利用google的方案自行实现的。这个方案的优点是可用性比较高,基本上基 于硬盘的应用都可以处理,可用范围就比较广泛。我看了gfs、gfs2、ocfs2、FastDFS、MogileFS的一些相关介绍,大致有一些认识。\n首先是文档比较少而出现的问题倒不少;然后是目前这些还没有一个能称得上是稳定版本,如果有的话,估计也就是其中一些收费的版本。因为磁盘存储乃是 致关重要,所以目前建议还是不要轻易把这些东西部署到重要的地方。假如非常想使用的话,最好 …"
May 31, 2010
cookie-free域名提高网页效率-优化网站性能(yslow)
"YSlow给如何提高网页效率和优化网站性能提供了22条建议,其中有一条是关于域名的:Use cookie-free domains。\n使用 cookie-free domains 有什么好处呢?当用户浏览器发送一个静态文件,如图片image、CSS样式表文件时会同时发送同一个域名(或二级域名)下的cookies,但是网站服 务器对发送过来的cookies完全不予理会,因此这些没用的cookies白白浪费了网站带宽,影响网站加载速度和网页性能表现。YSlow建议为了解 决这个问题,就可以通过使用 cookie-free domains 的方法来做优化,从而提高网页效率。\n使用二级域名作为cookie-free domains\n通俗地说,所谓的 cookie-free domains 就是在浏览器发送静态内容的请求时不会发送cookies 的域名。YSlow提示可以申请注册一个二级域名专门用来储存这些静态图片、JS、静态CSS文件。\n在前面泛域名解析设置影响seo和Google PR值这里提到了www开头,形如www.haohtml.com的域名实际上也是属于二级域名。如果你的网站主域名 …"
May 30, 2010
网页优化-apache中文件有效期的设置-yslow
"前面我用已经启用了网页压缩功能,见 http://blog.haohtml.com/index.php/archives/3723,下面我们来对网页元素有效期进行设置。\n首先,启用LoadModule expires_module modules/mod_expires.so,只要在httpd.conf中把前面的#号去掉就可以了。然后在httpd.conf最后添加以下几行\nExpiresActive On\nExpiresDefault “access plus 10 years”\n重启apache,可以用firefox浏览器中的yslow插件查看最终效果,此时”add expires haders”项应该为A。表示配置成功."
May 30, 2010
网页减肥-apache中启用gzip压缩
"先启用 LoadModule deflate_module modules/mod_deflate.so,只需要把前面的#去掉就可以了。\n然后在httpd.conf最下面添加以下行:\nDeflateBufferSize 8096 DeflateCompressionLevel 1 DeflateMemLevel 9 DeflateWindowSize 15\nDeflateFilterNote Input instream DeflateFilterNote Output outstream DeflateFilterNote Ratio ratio DeflateFilterNote ratio LogFormat ‘”%r” %{outstream}n/%{instream}n (%{ratio}n%%)’ deflate CustomLog logs/deflate.log deflate\nSetOutputFilter DEFLATE\nAddOutputFilterByType DEFLATE text/html text/css application/x-javascript …"
May 30, 2010
配置ETags–网站速度优化技巧法则13 – [网站速度优化]
"法则13 配置ETags\n实体标签(ETags)是用于确定浏览器缓存中元素 与原Web 服务器中的元素是否相匹配的机制(实体是“元素”的另外一个称谓:如图片、脚本、样式 表等),它提供 了比last-modified 时间更为灵活的元素验证机制。每一个ETag,都是唯一的字符串,用于标识特定版本的元素,它需被包括在引号中。原Web 服务器在响应信息头中用Etag来标识元素,如:\n\u0026gt; HTTP/1.1 200 OK \u0026gt; \u0026gt; Last-Modified: Tue, 12 Dec 2006 03:03:59 GMT \u0026gt; \u0026gt; ETag: “10c24bc-4ab-457e1c1f” \u0026gt; \u0026gt; Content-Length: 12195 之后,如果浏览器需验证某元 素,它在信息头中用If-None-Match传回ETag给原Web 服务器,若ETag匹配,则服务器返回304代码而不是上例中的12195字节,从而节省了下载响应时间。\n\u0026gt; GET /i/yahoo.gif HTTP/1.1 \u0026gt; \u0026gt; Host: us.yimg.com \u0026gt; …"
May 29, 2010
meta http-equiv=”Cache-Control” content=”max-age=0″
"Cache-Control头域 Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache- Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max- stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、 no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含 义如下\nPublic指示响应可被任何缓存区缓存\nPrivate指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器 仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效\nno-cache指示请求或响应消息不能缓存\nno-store用于防止 重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。\nmax-age指示客户机可以接收生存期不大于指定时间(以秒为单 位)的响应\nmin-fresh指示客户机可以 …"
May 29, 2010
HTTP头的Expires与Cache-control
"Cache-control用于控制HTTP缓存(在HTTP/1.0中可能部分没实现,仅仅实现了 Pragma: no-cache)\n数据包中的格式:\nCache-Control: cache-directive\ncache-directive可以为以下:\nrequest时用到:\n| \u0026#34;no-cache\u0026#34; | \u0026#34;no-store\u0026#34; | \u0026#34;max-age\u0026#34; \u0026#34;=\u0026#34; delta-seconds | \u0026#34;max-stale\u0026#34; [ \u0026#34;=\u0026#34; delta-seconds ] | \u0026#34;min-fresh\u0026#34; \u0026#34;=\u0026#34; delta-seconds | \u0026#34;no-transform\u0026#34; | \u0026#34;only-if-cached\u0026#34; | \u0026#34;cache-extension\u0026#34; response时用到:\n| \u0026#34;public\u0026#34; | \u0026#34;private\u0026#34; [ \u0026#34;=\u0026#34; \u0026lt;\u0026#34;\u0026gt; field-name …"