June 2, 2010
网站海量小文件分布式系统架构方案
"\u003cp\u003e网站文件的存储还是要讲究的,如果在网站成立初期,数据量不大就没有注意,随着时间的增长,网站的图片文件等数据肯定会越来越多,如何解决这些文件 存储也成了新的难题。如果把这些文件都完全采用大硬盘存储来解决,并不是一个好主意,因为数据量越大风险就越高,虽然文件能存得下,但是故障率相应会较 高,另外重建耗费时间也比较长。所以最好的办法是尽可能考虑分布式存储,把文件想办法利用网络分散到多个机器上。\u003c/p\u003e\n\u003cp\u003e从我所了解的存储结构来看,分布式存储大致可以分为几种:\u003c/p\u003e\n\u003cp\u003e1、类googlefs的分布式文件系统\u003c/p\u003e\n\u003cp\u003e因为目前googlefs没有开源,所以网上出现的分布式文件系统都是利用google的方案自行实现的。这个方案的优点是可用性比较高,基本上基 于硬盘的应用都可以处理,可用范围就比较广泛。我看了gfs、gfs2、ocfs2、FastDFS、MogileFS的一些相关介绍,大致有一些认识。\u003c/p\u003e\n\u003cp\u003e首先是文档比较少而出现的问题倒不少;然后是目前这些还没有一个能称得上是稳定版本,如果有的话,估计也就是其中一些收费的版本。因为磁盘存储乃是 致关重要,所以目前建议还是不要轻易把这些东西部署到重要的地方。假如非常想使用的话,最好 …\u003c/p\u003e"
May 31, 2010
cookie-free域名提高网页效率-优化网站性能(yslow)
"\u003cp\u003eYSlow给如何提高网页效率和优化网站性能提供了22条建议,其中有一条是关于域名的:Use cookie-free domains。\u003c/p\u003e\n\u003cp\u003e使用 cookie-free domains 有什么好处呢?当用户浏览器发送一个静态文件,如图片image、CSS样式表文件时会同时发送同一个域名(或二级域名)下的cookies,但是网站服 务器对发送过来的cookies完全不予理会,因此这些没用的cookies白白浪费了网站带宽,影响网站加载速度和网页性能表现。YSlow建议为了解 决这个问题,就可以通过使用 cookie-free domains 的方法来做优化,从而提高网页效率。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e使用二级域名作为cookie-free domains\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e通俗地说,所谓的 cookie-free domains 就是在浏览器发送静态内容的请求时不会发送cookies 的域名。YSlow提示可以申请注册一个二级域名专门用来储存这些静态图片、JS、静态CSS文件。\u003c/p\u003e\n\u003cp\u003e在前面泛域名解析设置影响seo和Google PR值这里提到了www开头,形如www.haohtml.com的域名实际上也是属于二级域名。如果你的网站主域名 …\u003c/p\u003e"
May 30, 2010
网页优化-apache中文件有效期的设置-yslow
"\u003cp\u003e前面我用已经启用了网页压缩功能,见 \u003ca href=\"http://blog.haohtml.com/index.php/archives/3723\"\u003ehttp://blog.haohtml.com/index.php/archives/3723\u003c/a\u003e,下面我们来对网页元素有效期进行设置。\u003c/p\u003e\n\u003cp\u003e首先,启用LoadModule expires_module modules/mod_expires.so,只要在httpd.conf中把前面的#号去掉就可以了。然后在httpd.conf最后添加以下几行\u003c/p\u003e\n\u003cp\u003eExpiresActive On\u003c/p\u003e\n\u003cp\u003eExpiresDefault “access plus 10 years”\u003c/p\u003e\n\u003cp\u003e重启apache,可以用firefox浏览器中的yslow插件查看最终效果,此时”add expires haders”项应该为A。表示配置成功.\u003c/p\u003e"
May 30, 2010
网页减肥-apache中启用gzip压缩
"\u003cp\u003e先启用 LoadModule deflate_module modules/mod_deflate.so,只需要把前面的#去掉就可以了。\u003c/p\u003e\n\u003cp\u003e然后在httpd.conf最下面添加以下行:\u003c/p\u003e\n\u003cp\u003eDeflateBufferSize 8096\nDeflateCompressionLevel 1\nDeflateMemLevel 9\nDeflateWindowSize 15\u003c/p\u003e\n\u003cp\u003eDeflateFilterNote Input instream\nDeflateFilterNote Output outstream\nDeflateFilterNote Ratio ratio\nDeflateFilterNote ratio\nLogFormat ‘”%r” %{outstream}n/%{instream}n (%{ratio}n%%)’ deflate\nCustomLog logs/deflate.log deflate\u003c/p\u003e\n\u003cp\u003eSetOutputFilter DEFLATE\u003c/p\u003e\n\u003cp\u003eAddOutputFilterByType DEFLATE text/html text/css application/x-javascript …\u003c/p\u003e"
May 30, 2010
配置ETags–网站速度优化技巧法则13 – [网站速度优化]
"\u003cp\u003e法则13 配置ETags\u003c/p\u003e\n\u003cp\u003e实体标签(ETags)是用于确定浏览器缓存中元素 与原Web 服务器中的元素是否相匹配的机制(实体是“元素”的另外一个称谓:如图片、脚本、样式 表等),它提供 了比last-modified 时间更为灵活的元素验证机制。每一个ETag,都是唯一的字符串,用于标识特定版本的元素,它需被包括在引号中。原Web 服务器在响应信息头中用Etag来标识元素,如:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026gt; HTTP/1.1 200 OK\n\u0026gt;\n\u0026gt; Last-Modified: Tue, 12 Dec 2006 03:03:59 GMT\n\u0026gt;\n\u0026gt; ETag: “10c24bc-4ab-457e1c1f”\n\u0026gt;\n\u0026gt; Content-Length: 12195\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e之后,如果浏览器需验证某元 素,它在信息头中用If-None-Match传回ETag给原Web 服务器,若ETag匹配,则服务器返回304代码而不是上例中的12195字节,从而节省了下载响应时间。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026gt; GET /i/yahoo.gif HTTP/1.1\n\u0026gt;\n\u0026gt; Host: us.yimg.com …\u003c/code\u003e\u003c/pre\u003e"
May 29, 2010
meta http-equiv=”Cache-Control” content=”max-age=0″
"\u003cp\u003e\u003cstrong\u003eCache-Control头域\u003c/strong\u003e\nCache-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。各个消息中的指令含 义如下\u003c/p\u003e\n\u003cp\u003ePublic指示响应可被任何缓存区缓存\u003c/p\u003e\n\u003cp\u003ePrivate指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器 仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效\u003c/p\u003e\n\u003cp\u003eno-cache指示请求或响应消息不能缓存\u003c/p\u003e\n\u003cp\u003eno-store用于防止 重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。\u003c/p\u003e\n\u003cp\u003emax-age指示客户机可以接收生存期不大于指定时间(以秒为单 位)的响应\u003c/p\u003e\n\u003cp\u003emin-fresh指示客户机可以 …\u003c/p\u003e"
May 29, 2010
HTTP头的Expires与Cache-control
"\u003cp\u003e\u003cstrong\u003eCache-control\u003c/strong\u003e用于控制HTTP缓存(在HTTP/1.0中可能部分没实现,仅仅实现了 Pragma: no-cache)\u003c/p\u003e\n\u003cp\u003e数据包中的格式:\u003c/p\u003e\n\u003cp\u003eCache-Control: cache-directive\u003c/p\u003e\n\u003cp\u003ecache-directive可以为以下:\u003c/p\u003e\n\u003cp\u003erequest时用到:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e| \u0026#34;no-cache\u0026#34;\n| \u0026#34;no-store\u0026#34;\n| \u0026#34;max-age\u0026#34; \u0026#34;=\u0026#34; delta-seconds\n| \u0026#34;max-stale\u0026#34; [ \u0026#34;=\u0026#34; delta-seconds ]\n| \u0026#34;min-fresh\u0026#34; \u0026#34;=\u0026#34; delta-seconds\n| \u0026#34;no-transform\u0026#34;\n| \u0026#34;only-if-cached\u0026#34;\n| \u0026#34;cache-extension\u0026#34;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eresponse时用到:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e| \u0026#34;public\u0026#34;\n| \u0026#34;private\u0026#34; [ \u0026#34;=\u0026#34; \u0026lt;\u0026#34;\u0026gt; field-name …\u003c/code\u003e\u003c/pre\u003e"
May 29, 2010
高性能网站建设指南——前端工程师技能精粹(电子版中文PDF版)下载
"\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2010/05/height-web.jpg\"\u003e\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/height-web.jpg\" alt=\"height-web\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e本书结合Web 2.0以来Web开发领域的最新形势和特点,介绍了网站性能问题的现状、产生的原因,以及改善或解决性能问题的原则、技术技巧和最佳实践。重点关注网页的行为特征,阐释优化Ajax、CSS、JavaScript、Flash和图片处理等要素的技术,全面涵盖浏览器端性能问题的方方面面。在《高性能网站建设指南》中,作者给出了14条具体的优化原则,每一条原则都配以范例佐证,并提供了在线支持。《高性能网站建设指南》内容丰富,主要包括减少HTTP请求、Edge Computing技术、Expires Header技术、Gzip组件、CSS和JavaScript最佳实践、主页内联、Domain最小化、JavaScript优化、避免重定向的技巧、删除重复JavaScript的技巧、关闭ETags的技巧、Ajax缓存技术和最小化技术等。《高性能网站建设指南》适合Web架构师、信息架构师、 Web开发人员及产品经理阅读和参考。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e下载地址(请使用 \u003cstrong\u003e下载工具下载\u003c/strong\u003e):\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"ftp://210.51.180.68/bbs/tp05/computer/web/%E9%AB%98%E6%80%A7%E8%83%BD%E7%BD%91%E7%AB%99%E5%BB%BA%E8%AE%BE%E6%8C%87%E5%8D%97_CHS%5Bwww.TopSage.com%5D.zip\"\u003e高性能网站建设指南_CHS\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e也可以在网盘下载: \u003ca href=\"http://www.dbank.com/download.action?t=40\u0026amp;k=MjAxMDI4Mg==\u0026amp;pcode=LCwxNDYyNzksMTQ2Mjc5\"\u003e高性能网站建设指南.zip\u003c/a\u003e\u003c/p\u003e\u003c/blockquote\u003e"
May 29, 2010
如何用Squid Windows版架设二级代理服务器
"\u003cp\u003e一、Windows版Squid的下载与安装\u003c/p\u003e\n\u003cp\u003e下载windwosNT版本的squid下载地址:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://squid.acmeconsulting.it/download/squid-2.6.STABLE13-bin.zip\"\u003ehttp://squid.acmeconsulting.it/download/squid-2.6.STABLE13-bin.zip\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e1.把squid-2.6.STABLE13-bin.zip解压缩,把里面的squid文件夹拷到c:\\下(squid默认的是c: \\squid)\u003c/p\u003e\n\u003cp\u003e2.squid\\etc目录下把\u003c/p\u003e\n\u003cp\u003esquid.conf.default拷贝一份重新命名为 squid.conf\u003c/p\u003e\n\u003cp\u003ecachemgr.conf.default拷贝一份重新命名为cachemgr.conf\u003c/p\u003e\n\u003cp\u003emime.conf.default 拷贝一份重新命名为mime.conf\u003c/p\u003e\n\u003cp\u003e3.用文本编辑器打开squid.conf,需要修改的地方:\u003c/p\u003e\n\u003cp\u003e找到 http_port 3128在后面增加一行\u003c/p\u003e\n\u003cp\u003ehttp_port 80 transparent\u003c/p\u003e\n\u003cp\u003e找 到#cache_peer sib2.foo.net sibling 3128 3130 [proxy-only]在后面增加一行\u003c/p\u003e\n\u003cp\u003ecache_peer 192.168.1.8 parent …\u003c/p\u003e"
May 28, 2010
MySQL数据库备份及恢复命令及常用应用举例
"\u003cp\u003e\u003cstrong\u003e– 备份\u003c/strong\u003e\nmysqldump –force –quick –skip-opt –create-options –add-drop-table –extended-insert –host=”localhost” –user=”root” –password=”密码” “数据库名称” \u0026gt; C:/2010-01-26.sql\n**\n– 还原**\nmysql –host=”localhost” –user=”root” –password=”密码” “数据库名称” \u0026lt; C:/2010-01-26.sql\u003c/p\u003e\n\u003cp\u003e本文总结了MySQL数据库备份及恢复常用命令mysqldump,source的用法。\n还原一个数据库:mysql -h localhost -u root -p123456 www\u003c/p\u003e\n\u003cp\u003e备份一个数据库:mysqldump -h localhost -u root -p123456 www \u0026gt; d:\\www2008-2-26.sql\u003c/p\u003e\n\u003cp\u003e//以下是在程序中进行测试\u003c/p\u003e\n\u003cp\u003e//$command = “mysqldump –opt -h $dbhost -u $dbuser -p …\u003c/p\u003e"
May 26, 2010
智能DNS配置
"\u003cp\u003e智能DNS配置\u003c/p\u003e\n\u003cp\u003e智能DNS可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,达到互联互通的效果。\n以下配置:网通用户使用网通web服务,其他使用电信服务\n主DNS服务器 202.93.111.100\n次DNS服务器 202.93.111.101\n网通WEB 202.93.111.102\n电信WEB 202.93.111.103\n邮件服务器 202.93.111.104\u003c/p\u003e\n\u003cp\u003e一、DNS服务器安装\n安装bind-9.4.2\n#emerge -v bind\u003c/p\u003e\n\u003cp\u003e配置主机名:\nnano -w /etc/hosts 增加:\n\u003cstrong\u003e202.93.111.100 ns1.myddz.com ns1\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e配置dns本机器查找\nnano -w /etc/resolv.conf 增加:\n\u003cstrong\u003edomain myddz.com\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e二、 named.conf的配置\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003enano -w /etc/bind/named.conf\u003c/li\u003e\n\u003cli\u003eoptions {\u003c/li\u003e\n\u003cli\u003edirectory “/var/bind”;\u003c/li\u003e\n\u003cli\u003elisten-on-v6 { none; }; …\u003c/li\u003e\u003c/ol\u003e"
May 26, 2010
新浪网易百度等各大门户网站的CDN架构设计分析
"\u003cp\u003e1、 新浪\u003c/p\u003e\n\u003cp\u003e新浪采用了ChinaCache做的CDN系统,ChinaCache在全国分布了四十多个 点,同时采用基于动态DNS分配的全球服务器负载均衡技术。\u003c/p\u003e\n\u003cp\u003e从新浪的站点结构可 以看出:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e \u003ca href=\"http://www.sina.com.cn/\"\u003ewww.sina.com.cn\u003c/a\u003e\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003eServer: UnKnown\u003c/p\u003e\n\u003cp\u003eAddress: 192.168.1.254\u003c/p\u003e\n\u003cp\u003eNon-authoritative answer:\u003c/p\u003e\n\u003cp\u003eName: libra.sina.com.cn\u003c/p\u003e\n\u003cp\u003eAddresses: 61.135.152.71, 61.135.152.72, 61.135.152.73, 61.135.152.74 61.135.152.75, 61.135.152.76, 61.135.153.181, 61.135.153.182, 61.135.53.183, 61.135.153.184, 61.135.152.65, 61.135.152.66, 61.135.152.67, 61.135.12.68, 61.135.152.69, 61.135.152.70\u003c/p\u003e\n\u003cp\u003eAliases: \u003ca href=\"http://www.sina.com.cn/\"\u003ewww.sina.com.cn\u003c/a\u003e, jupiter.sina.com.cn\u003c/p\u003e\n\u003cp\u003e在北 …\u003c/p\u003e"
May 26, 2010
mysql中查看表结构命令
"\u003cp\u003emysql查 看表结构命令,如下:\u003c/p\u003e\n\u003cp\u003edesc 表名;\u003c/p\u003e\n\u003cp\u003eshow columns from 表名;\u003c/p\u003e\n\u003cp\u003edescribe 表名;\u003c/p\u003e\n\u003cp\u003eshow create table 表名;\u003c/p\u003e\n\u003cp\u003euse information_schema\u003c/p\u003e\n\u003cp\u003eselect * from columns where table_name=’表名’;\u003c/p\u003e\n\u003cp\u003e顺便记下:\u003c/p\u003e\n\u003cp\u003eshow databases;\u003c/p\u003e\n\u003cp\u003euse 数据库名;\u003c/p\u003e\n\u003cp\u003eshow tables;\u003c/p\u003e\n\u003cp\u003e原有一unique索引AK_PAS_Name(PAC_Name)在表 tb_webparamcounter中,\u003c/p\u003e\n\u003cp\u003e执行以下sql修改索引\u003c/p\u003e\n\u003cp\u003ealter table tb_webparamcounter drop index AK_PAS_Name;\u003c/p\u003e\n\u003cp\u003ealter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name);\u003c/p\u003e\n\u003cp\u003e若发现索引的逻辑不对,还需要再加一个字段进去,执行\u003c/p\u003e\n\u003cp\u003ealter table tb_webparamcounter drop index AK_PAS_Name;\u003c/p\u003e\n\u003cp\u003ealter table …\u003c/p\u003e"
May 26, 2010
php和asp的301 重定向
"\u003cp\u003e\u003cstrong\u003ePHP:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eheader(‘HTTP/1.1 301 Moved Permanently’);\u003c/p\u003e\n\u003cp\u003eheader(‘Location: \u003ca href=\"http://www.haohtml.com/\"\u003ehttp://www.haohtml.com\u003c/a\u003e‘.$request_uri);\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eASP:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u0026lt;%\u003c/p\u003e\n\u003cp\u003eResponse.Status=”301 Moved Permanently”\u003c/p\u003e\n\u003cp\u003eResponse.AddHeader “Location”,” \u003ca href=\"http://www.haohtml.com/\"\u003ehttp://www.haohtml.com/\u003c/a\u003e”\u003c/p\u003e\n\u003cp\u003eResponse.End\u003c/p\u003e\n\u003cp\u003e%\u0026gt;\u003c/p\u003e"
May 23, 2010
dede织梦启用二级域名多站点图片url错误不显示的解决方法
"\u003cp\u003e前些天用dede做了个女性资讯站点http://www.yuerong.info ,之后启用了二级域名,发布文章的时候发现图片不显示,图片路径错误,发现许多网友也遇到这个问题,特将我的解决方法公布.这里提供两种解决办法.\u003c/p\u003e\n\u003cp\u003e第一种,也就最简单的方法,在和之间加入如下代码\u003c/p\u003e\n\u003cp\u003e但这种方法也有它的缺点,就是所有的相对路径前面都会加上上面的域名,这会导致文章页分页时发生错误.\u003c/p\u003e\n\u003cp\u003e第二种,需要修改dede的源码,是在目录include下的文件extend.func.php增加一个函数,函数的代码如下:\u003c/p\u003e\n\u003cp\u003efunction replaceurl($newurl)\u003c/p\u003e\n\u003cp\u003e{\u003c/p\u003e\n\u003cp\u003e$newurl=str_replace(‘/uploads’,’http://www.yuerong.info/uploads’,$newurl);\u003c/p\u003e\n\u003cp\u003ereturn $newurl;\u003c/p\u003e\n\u003cp\u003e}\u003c/p\u003e\n\u003cp\u003e把代码中的域名替换成你的.另外调用文章正文内容的标签还需要改成 \u003cstrong\u003e{dede:field name=’body’ function=’replaceurl(@me)’/}\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e如果按照上面的方法还没有解决或者修改遇到困难,欢迎留言提出您的问题,我们共同讨论!\u003c/p\u003e"