<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[Steven - 网站运营]]></title>
<link>http://www.xiqiwen.com/</link>
<description><![CDATA[创造机会的人是勇者；等待机会的人是愚者]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[xiqiwen@gmail.com(Steven)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>Steven</title> 
	<url>http://www.xiqiwen.com/images/logos.gif</url> 
	<link>http://www.xiqiwen.com/</link> 
	<description>Steven</description> 
</image>

			<item>
			<link>http://www.xiqiwen.com/default.asp?id=29</link>
			<title><![CDATA[关于SEO的13种有效方法]]></title>
			<author>xiqiwen@gmail.com(admin)</author>
			<category><![CDATA[网站运营]]></category>
			<pubDate>Mon,20 Apr 2009 18:14:09 +0800</pubDate>
			<guid>http://www.xiqiwen.com/default.asp?id=29</guid>	
		<description><![CDATA[<p>　　首先指出，我这里所说的优化是指通过非作弊方法使我们的网页更符合搜索引擎判断一个高质量网页的标准从而达到较好的排名。那种通过作弊，在短时间获得较好排名，但最终被封站的做法的得不偿失的。 <br />　　再要指出，搜索引擎最终的目标是为大家提供高质量的搜索结果，所以要想排名比较好，你的内容首先要比较好，我要谈的优化，是指内容质量一样的情况下，会得到更好的排名。</p>
<p>　　然后我列出会影响排名的一些关键点，再逐一分析各关键点该如何设置。</p>
<p>　　1、域名80分2、文件名20分3、页面标题100分4、关键字10分5、说明10分6、标题10分7、文章首段60分8、加粗5分9、图片10分10、站内相关链接10分11、高质量导出链接10分12、高质量的导入链接10分13、站内链接要盘根错节</p>
<p>　　一、域名</p>
<p>　　它所占的分值为80分，影响比较大，这也是为什么像格力，海尔这些大集团的域名和公司英文名称设为一样的原因，因为针对这些大集团，人们上网找的时候，有可能就直接搜公司英文名称，它的域名刚好和公司英文名称一样，自然就排在了前面。</p>
<p>　　当然，做为一般的个人网站，行业网站，门户网站来说，这一点道影响不大，因为这些站点追求的是方方面面的关键词排名比较好，一个网站只能有一个域名，既使这一点再重要，也无能为力了。也就只好在其它关键点上做文章了。</p>
<p>　　二、文件名</p>
<p>　　它所占的分值不大，但高手间的较量，总是细节决定成败。<br />　　为什么大家应该也了解到了</p>
<p>　　在路径中有shiyong、xiazai、wenti这些拼音分别是使用、下载、问题的意思，而这些网页的内容刚好也是相关内容，你不要说这是英文与中文搜索无关，但我要告诉你，第一、细节决定成败；第二、就有一些人对拼音是感性趣的；总比001、002、003起作用些。当然能用英文更好了，我英文不好，所以用拼音，这里我要说的是，最好用英文。</p>
<p>　　另外，如果你的默认页设为index.html的话，搜索引擎在抓取<a href="http://pf.zhongsou.net/news/shouye/zixun/081229/news_cj.html">http://pf.zhongsou.net/news/shouye/zixun/081229/news_cj.html</a>时，只需要抓<a href="http://pf.zhongsou.net/news/">http://pf.zhongsou.net/news/</a>就可以了，短了一大截，搜索引擎是喜欢的，不要问为什么，你就当搜索蜘蛛也很懒就行了。</p>
<p>　　三、页面标题</p>
<p>　　也就是&lt;title&gt;&lt;/title&gt;之间的内容，搜索引擎最为看重的项目了，一定要小心哟。</p>
<p>　　先说一下常见的页面标题的误区</p>
<p>　　最严重的是，整个网站所有页面的页面标题都一样，相信很多初学者就这样整的吧。我以前也这样整过，我做过一个经典故事，精美网文，精彩笑话的网站，收集了很多经内东西，但每张网页的标题我都设成了&ldquo;经典故事，精美网文，精彩笑话&rdquo;，这样的效果，大家可想而知了。</p>
<p>　　还有一种是和上面类似的，每个频道的页面标题设成一样，虽没有上一种严重，我看效果差不到多少。</p>
<p>　　稍好一点的设法呢，是这样：文章标题＋频道标题＋网站标题</p>
<p>　　上一种只能说稍好一点，我认为只要文章标题就好了，为什么呢？其实搜索引擎，是通过页面标题来判断这张网页的主要关键字的，一般的主要关键字，在页面标题中出现了，正文中再出现一些，这样排名就不错了，但如果你的页面标题又有频道标题，又有网站标题，我想在文章中出现的机率不大吧，这样影响的主要的关键字都不能得到较好的排名。</p>
<p>　　再要注意你的页面标题要尽量吸引人，具有诱惑力，因为这个页面标题最终是搜索结果是第一行带链接的文字，比较显眼，有诱惑力的内容对浏览者的影响是非常大的哟，假设你的结果排在第四，而一、二、三的页面标题没你的吸引人，大家都有可能点你的而不点他们的。</p>
<p>　　四、关键字</p>
<p>　　其实就是&lt;meta name=&quot;keywords&quot;&gt;里设的内容，分值比较少，但不能乱设，更不能堆砌关键字，只需要与标题相关就行，比如本篇如上设置就行了。不用下太大功夫。</p>
<p>　　五、说明</p>
<p>　　其实就是&lt;meta name=&quot;description&quot;&gt;里设的内容，分值也比较少，可以是对页面标题的一个更进一步说明，如上设置即可。几乎和页面标题相同，没关系，这样就行了。</p>
<p>　　六、标题</p>
<p>　　这里的标题，就指文章标题了，最好用&lt;h1&gt;标签修饰。其它就没什么了</p>
<p>　　七、文章首段</p>
<p>　　最好在文章最前面，就能提到标题中的关键字，这叫点题，在哪里点都可以，但在头一段点，效果最好，注意哟，这一点60分哟。</p>
<p>　　八、加粗</p>
<p>　　加粗指的是用&lt;b&gt;或&lt;strong&gt;标签修饰，分值不高，最好设计到什么地方呢？段落标题，一般把每个段落标题加粗就行了。</p>
<p>　　九、图片</p>
<p>　　图片的优化，几乎所有的文章都提的是alt属性的设置，其实还有一点非常重要，现在不是提昌DIV+CSS吗，很多人把控制图片大小的属性写进了css，这样代码是简单了，但这样的图片是不会被搜索引擎收录的，为什么呢，大家在搜索图片时，是不是有所有图片，大图，中图，小图几个选项，如果在html标签中没有height，width属性设置，搜索引擎不能判断它的大小，干脆它就不收录。这一点要注意要，这是独家探索资料。</p>
<p>　　十、站内相关链接</p>
<p>　　这一点是指当前页要有指向站内其它页的具有相同或相似关键字的网页的链接，不相关的就不要链接了，内容要专。</p>
<p>　　十一、高质量的导出链接</p>
<p>　　要有指向知名网站，PR值比较高网站，相同主题的页面。有付出才有回报嘛，你这么慷概给大站做外链，搜索引擎以为你和大站是亲戚，自然也就重视你了。</p>
<p>　　十二、高质量的导入链接</p>
<p>　　这一点不太容易，就是要大站，相关内容的页面也指向你这一页，就要看你那门亲戚看不看得起你了，这样的机率比较小，可以从三个方面努力，一、多和站长交朋友，让大家觉得你人不错，大家为了拉你一把，给点外链给你；二，多和相关网站做友情链接，这个属于资源互换，关系用不着很铁，但千万不要找一些作弊站，到时牵连到你，最好是条件比你好的相关站点；要定期看那些网站还在不在，他有没有把你的链接删年，要维护嘛；三、自己到大站的相关版块发评论，看能不能发链接回来，几率比较小哟。</p>
<p>　　十三、站内链接要盘根错节</p>
<p>　　就是顶层页面要有，既要有指向二级页面的链接，也要有指向底层的；二级页面既要有指向底层的，也要有指向顶层的；底层的既要有指向二级页面的，也要有指向顶层的；全部用文字链接。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.xiqiwen.com/default.asp?id=21</link>
			<title><![CDATA[Web网站系统测试方法]]></title>
			<author>xiqiwen@gmail.com(admin)</author>
			<category><![CDATA[网站运营]]></category>
			<pubDate>Tue,08 Apr 2008 16:00:47 +0800</pubDate>
			<guid>http://www.xiqiwen.com/default.asp?id=21</guid>	
		<description><![CDATA[<p>随着Internet和Intranet/Extranet的快速增长，Web已经对商业、工业、银行、财政、教育、政府和娱乐及我们的工作和生活产生了深远的影响。许多传统的信息和数据库系统正在被移植到互联网上，电子商务迅速增长，早已超过了国界。范围广泛的、复杂的分布式应用正在Web环境中出现。Web的流行和无所不在，是因为它能提供支持所有类型内容连接的信息发布，容易为最终用户存取。</p>
<p>　　Yogesh Deshpande和SteveHansen在1998年就提出了Web工程的概念。Web工程作为一门新兴的学科，提倡使用一个过程和系统的方法来开发高质量的基于Web的系统。它&quot;使用合理的、科学的工程和管理原则，用严密的和系统的方法来开发、发布和维护基于Web的系统&quot;。目前，对于web工程的研究主要是在国外开展的，国内还刚刚起步。</p>
<p>　　在基于Web的系统开发中，如果缺乏严格的过程，我们在开发、发布、实施和维护Web的过程中，可能就会碰到一些严重的问题，失败的可能性很大。而且，随着基于Web的系统变得越来越复杂，一个项目的失败将可能导致很多问题。当这种情况发生时，我们对Web和Internet的信心可能会无法挽救地动摇，从而引起Web危机。并且，Web危机可能会比软件开发人员所面对的软件危机更加严重、更加广泛。</p>
<p>　　在Web工程过程中，基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同，它不但需要检查和验证是否按照设计的要求运行，而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是，还要从最终用户的角度进行安全性和可用性测试。然而，Internet和Web媒体的不可预见性使测试基于Web的系统变得困难。因此，我们必须为测试和评估复杂的基于Web的系统研究新的方法和技术。</p>
<p>　　一般软件的发布周期以月或以年计算，而Web应用的发布周期以天计算甚至以小时计算。Web测试人员必须处理更短的发布周期，测试人员和测试管理人员面临着从测试传统的C/S结构和框架环境到测试快速改变的Web应用系统的转变。</p>
<p>　　一、功能测试</p>
<p>　　1、链接测试</p>
<p>　　链接是Web应用系统的一个主要特征，它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先，测试所有链接是否按指示的那样确实链接到了该链接的页面；其次，测试所链接的页面是否存在；最后，保证Web应用系统上没有孤立的页面，所谓孤立页面是指没有链接指向该页面，只有知道正确的URL地址才能访问。</p>
<p>　　链接测试可以自动进行，现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成，也就是说，在整个Web应用系统的所有页面开发完成之后进行链接测试。</p>
<p>　　2、表单测试</p>
<p>　　当用户给Web应用系统管理员提交信息时，就需要使用表单操作，例如用户注册、登陆、信息提交等。在这种情况下，我们必须测试提交操作的完整性，以校验提交给服务器的信息的正确性。例如：用户填写的出生日期与职业是否恰当，填写的所属省份与所在城市是否匹配等。如果使用了默认值，还要检验默认值的正确性。如果表单只能接受指定的某些值，则也要进行测试。例如：只能接受某些字符，测试时可以跳过这些字符，看系统是否会报错。</p>
<p>　　3、Cookies测试</p>
<p>　　Cookies通常用来存储用户信息和用户在某应用系统的操作，当一个用户使用Cookies访问了某一个应用系统时，Web服务器将发送关于用户的信息，把该信息以Cookies的形式存储在客户端计算机上，这可用来创建动态和自定义页面或者存储登陆等信息。</p>
<p>　　如果Web应用系统使用了Cookies，就必须检查Cookies是否能正常工作。测试的内容可包括Cookies是否起作用，是否按预定的时间进行保存，刷新对Cookies有什么影响等。</p>
<p>　　4、设计语言测试</p>
<p>　　Web设计语言版本的差异可以引起客户端或服务器端严重的问题，例如使用哪种版本的HTML等。当在分布式环境中开发时，开发人员都不在一起，这个问题就显得尤为重要。除了HTML的版本问题外，不同的脚本语言，例如Java、JavaScript、ActiveX、VBScript或Perl等也要进行验证。</p>
<p>　　5、数据库测试</p>
<p>　　在Web应用技术中，数据库起着重要的作用，数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中，最常用的数据库类型是关系型数据库，可以使用SQL对信息进行处理。</p>
<p>　　在使用了数据库的Web应用系统中，一般情况下，可能发生两种错误，分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的，而输出错误主要是由于网络速度或程序设计问题等引起的，针对这两种情况，可分别进行测试。</p>
<p>　　二、性能测试</p>
<p>　　1、连接速度测试</p>
<p>　　用户连接到Web应用系统的速度根据上网方式的变化而变化，他们或许是电话拨号，或是宽带上网。当下载一个程序时，用户可以等较长的时间，但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长（例如超过5秒钟），用户就会因没有耐心等待而离开。</p>
<p>　　另外，有些页面有超时的限制，如果响应速度太慢，用户可能还没来得及浏览内容，就需要重新登陆了。而且，连接速度太慢，还可能引起数据丢失，使用户得不到真实的页面。</p>
<p>　　2、负载测试</p>
<p>　　负载测试是为了测量Web系统在某一负载级别上的性能，以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量，也可以是在线数据处理的数量。例如：Web应用系统能允许多少个用户同时在线？如果超过了这个数量，会出现什么现象？Web应用系统能否处理大量用户对同一个页面的请求？</p>
<p>　　3、压力测试</p>
<p>　　负载测试应该安排在Web系统发布以后，在实际的网络环境中进行测试。因为一个企业内部员工，特别是项目组人员总是有限的，而一个Web系统能同时处理的请求数量将远远超出这个限度，所以，只有放在Internet上，接受负载测试，其结果才是正确可信的。</p>
<p>　　进行压力测试是指实际破坏一个Web应用系统，测试系统的反映。压力测试是测试系统的限制和故障恢复能力，也就是测试Web应用系统会不会崩溃，在什么情况下会崩溃。黑客常常提供错误的数据负载，直到Web应用系统崩溃，接着当系统重新启动时获得存取权。</p>
<p>　　压力测试的区域包括表单、登陆和其他信息传输页面等。</p>
<p>　　三、可用性测试</p>
<p>　　1、导航测试</p>
<p>　　导航描述了用户在一个页面内操作的方式，在不同的用户接口控制之间，例如按钮、对话框、列表和窗口等；或在不同的连接页面之间。通过考虑下列问题，可以决定一个Web应用系统是否易于导航：导航是否直观？Web系统的主要部分是否可通过主页存取？Web系统是否需要站点地图、搜索引擎或其他的导航帮助？</p>
<p>　　在一个页面上放太多的信息往往起到与预期相反的效果。Web应用系统的用户趋向于目的驱动，很快地扫描一个Web应用系统，看是否有满足自己需要的信息，如果没有，就会很快地离开。很少有用户愿意花时间去熟悉Web应用系统的结构，因此，Web应用系统导航帮助要尽可能地准确。</p>
<p>　　导航的另一个重要方面是Web应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容，内容在什么地方。</p>
<p>　　Web应用系统的层次一旦决定，就要着手测试用户导航功能，让最终用户参与这种测试，效果将更加明显。</p>
<p>　　2、图形测试</p>
<p>　　在Web应用系统中，适当的图片和动画既能起到广告宣传的作用，又能起到美化页面的功能。一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有：</p>
<p>　　（1）要确保图形有明确的用途，图片或动画不要胡乱地堆在一起，以免浪费传输时间。Web应用系统的图片尺寸要尽量地小，并且要能清楚地说明某件事情，一般都链接到某个具体的页面。</p>
<p>　　（2）验证所有页面字体的风格是否一致。</p>
<p>　　（3）背景颜色应该与字体颜色和前景颜色相搭配。</p>
<p>　　（4）图片的大小和质量也是一个很重要的因素，一般采用JPG或GIF压缩。</p>
<p>　　3、内容测试</p>
<p>　　内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。</p>
<p>　　信息的正确性是指信息是可靠的还是误传的。例如，在商品价格列表中，错误的价格可能引起财政问题甚至导致法律纠纷；信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行，例如使用Microsoft Word的&quot;拼音与语法检查&quot;功能；信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口，也就是一般Web站点中的所谓&quot;相关文章列表&quot;。</p>
<p>　　4、整体界面测试</p>
<p>　　整体界面是指整个Web应用系统的页面结构设计，是给用户的一个整体感。例如：当用户浏览Web应用系统时是否感到舒适，是否凭直觉就知道要找的信息在什么地方？整个Web应用系统的设计风格是否一致？<br />对整体界面的测试过程，其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式，来得到最终用户的反馈信息。</p>
<p>　　对所有的可用性测试来说，都需要有外部人员（与Web应用系统开发没有联系或联系很少的人员）的参与，最好是最终用户的参与。</p>
<p>　　四、客户端兼容性测试</p>
<p>　　1、平台测试</p>
<p>　　市场上有很多不同的操作系统类型，最常见的有Windows、Unix、Macintosh、Linux等。Web应用系统的最终用户究竟使用哪一种操作系统，取决于用户系统的配置。这样，就可能会发生兼容性问题，同一个应用可能在某些操作系统下能正常运行，但在另外的操作系统下可能会运行失败。</p>
<p>　　因此，在Web系统发布之前，需要在各种操作系统下对Web系统进行兼容性测试。</p>
<p>　　2、浏览器测试</p>
<p>　　浏览器是Web客户端最核心的构件，来自不同厂商的浏览器对Java，、JavaScript、ActiveX、plug-ins或不同的HTML规格有不同的支持。例如，ActiveX是Microsoft的产品，是为Internet Explorer而设计的，JavaScript是Netscape的产品，Java是Sun的产品等等。另外，框架和层次结构风格在不同的浏览器中也有不同的显示，甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。</p>
<p>　　测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中，测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。</p>
<p>　　五、安全性测试</p>
<p>　　Web应用系统的安全性测试区域主要有：</p>
<p>　　（1）现在的Web应用系统基本采用先注册，后登陆的方式。因此，必须测试有效和无效的用户名和密码，要注意到是否大小写敏感，可以试多少次的限制，是否可以不登陆而直接浏览某个页面等。</p>
<p>　　（2）Web应用系统是否有超时的限制，也就是说，用户登陆后在一定时间内（例如15分钟）没有点击任何页面，是否需要重新登陆才能正常使用。</p>
<p>　　（3）为了保证Web应用系统的安全性，日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。</p>
<p>　　（4）当使用了安全套接字时，还要测试加密是否正确，检查信息的完整性。</p>
<p>　　（5）服务器端的脚本常常构成安全漏洞，这些漏洞又常常被黑客利用。所以，还要测试没有经过授权，就不能在服务器端放置和编辑脚本的问题。</p>
<p>　　六、总结</p>
<p>　　本文从功能、性能、可用性、客户端兼容性、安全性等方面讨论了基于Web的系统测试方法。</p>
<p>　　基于Web的系统测试与传统的软件测试既有相同之处，也有不同的地方，对软件测试提出了新的挑战。基于Web的系统测试不但需要检查和验证是否按照设计的要求运行，而且还要评价系统在不同用户的浏览器端的显示是否合适。重要的是，还要从最终用户的角度进行安全性和可用性测试。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.xiqiwen.com/default.asp?id=20</link>
			<title><![CDATA[网站运营六大核心]]></title>
			<author>xiqiwen@gmail.com(admin)</author>
			<category><![CDATA[网站运营]]></category>
			<pubDate>Tue,27 Nov 2007 17:56:04 +0800</pubDate>
			<guid>http://www.xiqiwen.com/default.asp?id=20</guid>	
		<description><![CDATA[<p><strong>一、行业是基础</strong> </p>
<p>&nbsp;　　在网站运营中，脱离或背离行业的门户网站或行业网站在如今网站多如牛毛的社会，你就越来越难生存，就算你现在还不错，如果你没有危机感，你将被一个新生代网站及网民淘汰；你是否真正理解行业发展的困惑，你的网站能弥补行业哪些不足。</p>
<p>&nbsp;<strong>二、竞争是关键</strong> </p>
<p>&nbsp;　　在网站运营中，你首先要找到你的主要竞争对手，你的定位是在全国，还是本土，如果你是做本土最好的某方面网站，你就不要拿全国的网站作为主要竞争对手，首先，你的竞争对手是怎样做的，他们有哪方面优势，比如：他们有行业协会支持，还是其他... 第二: 你自己有哪些优势, 如何在细节上比竞争对手做得更好; 第三: 你在哪方面能给客户创造更多价值，更好的为客户服务。只有不断取得竞争优势地位, 你才能在竞争当中利于不败之地, 不是用金钱去拼, 而应智取、巧取。 </p>
<p>&nbsp;<strong>三、需求是根本</strong> </p>
<p>&nbsp;　　网站建设如果你不是建立在满足网民对信息不断更新基础上，不愿建立自己的开发队伍，走程序性开发，那么你如何跟竞争对手比拼，因为你的对手是有基础的网站，而你还是新生代，你是否比你的竞争对手更能满足客户需求呢？你知道网民和广告主的需求吗？ </p>
<p><strong>&nbsp;四、资源是财富</strong> </p>
<p>&nbsp;　　资源分为：客户资源、信息资源、数据资源、技术资源、协会资源、人脉资源、合作共同体、财力资源等等，这些资源都直接或间接为网民服务及创造价值。资源越多，竞争力越强。如：网站如何内容，如何为网民提供更多免费和付费的信息内容，你有哪些现成的或可以得到的资源可供网民利用&hellip; </p>
<p>&nbsp;<strong>五、流量是生命</strong> </p>
<p>&nbsp;　　网站的流量是决定广告主在你的网站投广告的先决条件。如果没有足够的广告主以付费形式做广告，那么网站生存就是未知数。如何你是做的行业门户网站，那么，你就得尽量锁住本行业网民点击率，只有这些客户才是你的忠实客户群，那些非本行业人士多半只能是冲冲过客一个。如果你是做本土的网站，你就应该结合当地行业实情去设计并推广你的网站。如何如果你没有诸多资源优势，千万别冒然去做全国性的网站，这样你耗费的投入及推广成本也高。因此，有效的流量是网站的生命。 </p>
<p><strong>六、整合是核心</strong> </p>
<p>　　如何整合更多的资源加以利用，这是网站管理者的一门学问，也是网站运营的基石！整合包刮很多方面：如：人脉资源整合、客户资源整合、营销整合、信息数据整合、技术推广的整合、媒体资源的整合、产业链的整合、供应链的整合、资本运营整合&hellip;各网站的发展和定位不同, 因此整合应根据自身企业情况而定。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.xiqiwen.com/default.asp?id=8</link>
			<title><![CDATA[浅析大型网站的架构]]></title>
			<author>xiqiwen@gmail.com(admin)</author>
			<category><![CDATA[网站运营]]></category>
			<pubDate>Sun,02 Sep 2007 17:30:26 +0800</pubDate>
			<guid>http://www.xiqiwen.com/default.asp?id=8</guid>	
		<description><![CDATA[一个小型的网站，比如个人网站，可以使用最简单的html静态页面就实现了，配合一些图片达到美化效果，所有的页面均存放在一个目录下，这样的网站对系统架构、性能的要求都很简单，随着互联网业务的不断丰富，网站相关的技术经过这些年的发展，已经细分到很细的方方面面，尤其对于大型网站来说，所采用的技术更是涉及面非常广，从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求，已经不是原来简单的html静态网站所能比拟的。<br /><br />大型网站，比如门户网站。在面对大量用户访问、高并发请求方面，基本的解决方案集中在这样几个环节：使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。但是除了这几个方面，还没法根本解决大型网站面临的高负载和高并发问题。<br /><br />上面提供的几个解决思路在一定程度上也意味着更大的投入，并且这样的解决思路具备瓶颈，没有很好的扩展性，下面我从低成本、高性能和高扩张性的角度来说说我的一些经验。<br /><br /><strong>1、HTML静态化<br /><br /></strong>其实大家都知道，效率最高、消耗最小的就是纯静态化的html页面，所以我们尽可能使我们的网站上的页面采用静态页面来实现，这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站，我们无法全部手动去挨个实现，于是出现了我们常见的信息发布系统CMS，像我们常访问的各个门户站点的新闻频道，甚至他们的其他频道，都是通过信息发布系统来管理和实现的，信息发布系统可以实现最简单的信息录入自动生成静态页面，还能具备频道管理、权限管理、自动抓取等功能，对于一个大型网站来说，拥有一套高效、可管理的CMS是必不可少的。<br /><br />除了门户和信息发布类型的网站，对于交互性要求很高的社区类型网站来说，尽可能的静态化也是提高性能的必要手段，将社区内的帖子、文章进行实时的静态化，有更新的时候再重新静态化也是大量使用的策略，像Mop的大杂烩就是使用了这样的策略，网易社区等也是如此。<br /><br />同时，html静态化也是某些缓存策略使用的手段，对于系统中频繁使用数据库查询但是内容更新很小的应用，可以考虑使用html静态化来实现，比如论坛中论坛的公用设置信息，这些信息目前的主流论坛都可以进行后台管理并且存储再数据库中，这些信息其实大量被前台程序调用，但是更新频率很小，可以考虑将这部分内容进行后台更新的时候进行静态化，这样避免了大量的数据库访问请求。<br /><br /><strong>2、图片服务器分离</strong><br /><br />大家知道，对于Web服务器来说，不管是Apache、IIS还是其他容器，图片是最消耗资源的，于是我们有必要将图片与页面进行分离，这是基本上大型网站都会采用的策略，他们都有独立的图片服务器，甚至很多台图片服务器。这样的架构可以降低提供页面访问请求的服务器系统压力，并且可以保证系统不会因为图片问题而崩溃，在应用服务器和图片服务器上，可以进行不同的配置优化，比如apache在配置ContentType的时候可以尽量少支持，尽可能少的LoadModule，保证更高的系统消耗和执行效率。<br /><br /><strong>3、数据库集群和库表散列</strong><br /><br />大型网站都有复杂的应用，这些应用必须使用数据库，那么在面对大量访问的时候，数据库的瓶颈很快就能显现出来，这时一台数据库将很快无法满足应用，于是我们需要使用数据库集群或者库表散列。<br /><br />在数据库集群方面，很多数据库都有自己的解决方案，Oracle、Sybase等都有很好的方案，常用的MySQL提供的Master/Slave也是类似的方案，您使用了什么样的DB，就参考相应的解决方案来实施即可。<br /><br />上面提到的数据库集群由于在架构、成本、扩张性方面都会受到所采用DB类型的限制，于是我们需要从应用程序的角度来考虑改善系统架构，库表散列是常用并且最有效的解决方案。我们在应用程序中安装业务和应用或者功能模块将数据库进行分离，不同的模块对应不同的数据库或者表，再按照一定的策略对某个页面或者功能进行更小的数据库散列，比如用户表，按照用户ID进行表散列，这样就能够低成本的提升系统的性能并且有很好的扩展性。sohu的论坛就是采用了这样的架构，将论坛的用户、设置、帖子等信息进行数据库分离，然后对帖子、用户按照板块和ID进行散列数据库和表，最终可以在配置文件中进行简单的配置便能让系统随时增加一台低成本的数据库进来补充系统性能。<br /><br /><strong>4、缓存</strong><br /><br />缓存一词搞技术的都接触过，很多地方用到缓存。网站架构和网站开发中的缓存也是非常重要。这里先讲述最基本的两种缓存。高级和分布式的缓存在后面讲述。<br /><br />架构方面的缓存，对Apache比较熟悉的人都能知道Apache提供了自己的缓存模块，也可以使用外加的Squid模块进行缓存，这两种方式均可以有效的提高Apache的访问响应能力。<br /><br />网站程序开发方面的缓存，Linux上提供的Memory Cache是常用的缓存接口，可以在web开发中使用，比如用Java开发的时候就可以调用MemoryCache对一些数据进行缓存和通讯共享，一些大型社区使用了这样的架构。另外，在使用web语言开发的时候，各种语言基本都有自己的缓存模块和方法，PHP有Pear的Cache模块，Java就更多了，.net不是很熟悉，相信也肯定有。<br /><br /><strong>5、镜像<br /><br /></strong>镜像是大型网站常采用的提高性能和数据安全性的方式，镜像的技术可以解决不同网络接入商和地域带来的用户访问速度差异，比如ChinaNet和EduNet之间的差异就促使了很多网站在教育网内搭建镜像站点，数据进行定时更新或者实时更新。在镜像的细节技术方面，这里不阐述太深，有很多专业的现成的解决架构和产品可选。也有廉价的通过软件实现的思路，比如Linux上的rsync等工具。<br /><br /><strong>6、负载均衡</strong><br /><br />负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法。<br /><br />负载均衡技术发展了多年，有很多专业的服务提供商和产品可以选择，我个人接触过一些解决方法，其中有两个架构可以给大家做参考。<br /><br /><strong>硬件四层交换</strong><br /><br />第四层交换使用第三层和第四层信息包的报头信息，根据应用区间识别业务流，将整个区间段的业务流分配到合适的应用服务器进行处理。　第四层交换功能就象是虚 IP，指向物理服务器。它传输的业务服从的协议多种多样，有HTTP、FTP、NFS、Telnet或其他协议。这些业务在物理服务器基础上，需要复杂的载量平衡算法。在IP世界，业务类型由终端TCP或UDP端口地址来决定，在第四层交换中的应用区间则由源端和终端IP地址、TCP和UDP端口共同决定。<br /><br />在硬件四层交换产品领域，有一些知名的产品可以选择，比如Alteon、F5等，这些产品很昂贵，但是物有所值，能够提供非常优秀的性能和很灵活的管理能力。Yahoo中国当初接近2000台服务器使用了三四台Alteon就搞定了。<br /><br /><strong>软件四层交换<br /><br /></strong>大家知道了硬件四层交换机的原理后，基于OSI模型来实现的软件四层交换也就应运而生，这样的解决方案实现的原理一致，不过性能稍差。但是满足一定量的压力还是游刃有余的，有人说软件实现方式其实更灵活，处理能力完全看你配置的熟悉能力。<br /><br />软件四层交换我们可以使用Linux上常用的LVS来解决，LVS就是Linux Virtual Server，他提供了基于心跳线heartbeat的实时灾难应对解决方案，提高系统的鲁棒性，同时可供了灵活的虚拟VIP配置和管理功能，可以同时满足多种应用需求，这对于分布式的系统来说必不可少。<br /><br />一个典型的使用负载均衡的策略就是，在软件或者硬件四层交换的基础上搭建squid集群，这种思路在很多大型网站包括搜索引擎上被采用，这样的架构低成本、高性能还有很强的扩张性，随时往架构里面增减节点都非常容易。这样的架构我准备空了专门详细整理一下和大家探讨。<br /><br />对于大型网站来说，前面提到的每个方法可能都会被同时使用到，我这里介绍得比较浅显，具体实现过程中很多细节还需要大家慢慢熟悉和体会，有时一个很小的squid参数或者apache参数设置，对于系统性能的影响就会很大，希望大家一起讨论，达到抛砖引玉之效。&nbsp;]]></description>
		</item>
		
</channel>
</rss>