分类目录归档:WEB服务
Web自动化测试原理
免费Web网站安全检测工具N-Stalker Free Version
浏览器兼容测试工具推荐
Web测试人员经验总结
随着基于Web的系统变得越来越复杂,一个项目的失败将可能导致很多问题。当这种情况发生时,我们对Web和Internet的信心可能会无法挽救地动摇,从而引起Web危机。并且,Web危机可能会比软件开发人员所面对的软件危机更加严重、更加广泛。基于Web的系统测试在基于Web的系统开发中,如果缺乏严格的过程,我们在开发、发布、实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大。
在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,Internet和Web媒体的不可预见性使测试基于Web的系统变得困难。因此,我们必须为测试和评估复杂的基于Web的系统研究新的方法和技术。 一般软件的发布周期以月或以年计算,而Web应用的发布周期以天计算甚至以小时计算。
Web测试人员必须处理更短的发布周期,测试人员和测试管理人员面临着从测试传统的C/S结构和框架环境到测试快速改变的Web应用系统的转变。
一、 功能测试
1、链接测试 链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。 链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。
2、表单测试 当用户给Web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。
3、Cookies测试 Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。 如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。
4、设计语言测试 Web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言,例如Java、JavaScript、 ActiveX、VBScript或Perl等也要进行验证。
5、数据库测试 在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。 在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。
二、 性能测试
1、连接速度测试
用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。 另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
2、负载测试
负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?
3、压力测试
负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。 进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。 压力测试的区域包括表单、登陆和其他信息传输页面等。
三、 可用性测试
1、导航测试 导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题,可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助? 在一个页面上放太多的信息往往起到与预期相反的效果。Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉Web应用系统的结构,因此,Web应用系统导航帮助要尽可能地准确。 导航的另一个重要方面是Web应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。 Web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。
2、图形测试 在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。
图形测试的内容有:
(1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。
(2)验证所有页面字体的风格是否一致。
(3)背景颜色应该与字体颜色和前景颜色相搭配。
(4)图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。
3、内容测试
内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。 信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用Microsoft Word的”拼音与语法检查”功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中的所谓”相关文章列表”。
4、整体界面测试
整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致? 对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。 对所有的可用性测试来说,都需要有外部人员(与Web应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。
四、 客户端兼容性测试
1、平台测试
市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。Web应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。 因此,在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试。
2、浏览器测试
浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、JavaScript、 ActiveX、 plug-ins或不同的HTML规格有不同的支持。例如,ActiveX是Microsoft的产品,是为Internet Explorer而设计的,JavaScript是Netscape的产品,Java是Sun的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。 测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。
五、 安全性测试
Web应用系统的安全性测试区域主要有:
(1)现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。
(2)Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
免费在线Web 网站性能测试工具
免费在线Web 网站性能测试工具,Web Page Test、Load Impact、FreeSpeedTest、Browser Mob、Rapid Search Metrics、Host Tracker、Pingdom Tools、Webo Software、iWebtool、Wave、Web Page Analyzer、WebToolHub 全了吗?
从世界各地多个地点,使用真正的浏览器(IE和Chrome),并在真正的消费者连接速度,对你的网站进行速度测试。您可以运行简单的测试,或执行多步交易,视频采集,内容封锁和更先进的测试,包括。您的结果将提供丰富的诊断信息,包括资源加载的瀑布图,网页速度优化检查和改进建议。
2) Load Impact
Load Impact 是一个用来测试网站一次性可支持的负载数,可在同一时间从不同的地点发起50个并发请求,然后分析出你的网页加载的速度。
3) FreeSpeedTest
FreeSpeedTest.com 是最棒的网站速度测试工具之一,用于测试网站访问速度和加载时间,可模拟来自全球各地的请求。
4) Browser Mob
可模拟三个不同地方的用户访问网站并进行加载测试,有超过25个真实浏览器或100个虚拟用户来检测网站速度,同时提供脚本验证服务等。
5) Rapid Search Metrics
用于做 SEO 搜索引擎优化和速度测试和分析,数据包括网站的平均速度、数据量,非HTML加载时间等等。
6) Host Tracker
可通过来自全球的超过 95% 的节点对网站进行模拟测试,包括错误报告通知到手机,支持HEAD/POST/GET 等方法以及 CGI 脚本操作。
7) Pingdom Tools
用来显示网站各个元素的加载时间,包括Html、css和js、图片等。
8) Webo Software
Webo 软件对网站进行性能测试后,将测试结果通过 email 发送给你,同时它也建议什么时候需要提升网站速度、带宽等信息。
9) iWebtool
10) Wave
11) Web Page Analyzer
Web Page Analyzer 可让用户测试网站速度以提升性能,同时可计算网页大小、复杂度和下载时间。
12) WebToolHub
网站测试的一个精巧的工具,包括两种测试模式:简单和高级.
简单模式显示网站的加载时间以及各个地方的访问速度,而高级模式还包括每个元素的加载时间。
总结的一些常用站长SEO工具集锦:网站管理员工具、外链检查工具、流量查询工具等
总结的一些常用站长SEO工具集锦:网站管理员工具、外链检查工具、流量查询工具、关键字查询工具、关键字排行工具、网站统计工具、网站联盟、网站广告管家、网站安全检测、网站被封申诉通道、SNS分享工具、站长综合类查询工具。
SEO工作者经常需要一些SEO工具的辅助,比如网站收录查询、PR查询等等,以便节省自己的时间,让SEO变得更加轻松。那么,常用的SEO工具都有哪些呢?月光博客今天就介绍一些常用的SEO工具网址,并将其进行分类,希望对大家的SEO工作有所帮助。
网站管理员工具
网站管理员工具需要对网站域名所有权进行验证,通常是通过上传指定文件、增加META或者修改网站DNS来验证管理员身份,通过验证后,网站管理员可以查询到自己网站的各类统计信息。
1、 Google Webmaster Tools:谷歌网站管理员工具,可以获取到谷歌抓取、编入索引和搜索流量的数据,同时接收关于用户网站上所存在的问题的通知。
2、 Bing Webmaster Tools :微软必应网站管理员工具,获取到必应的搜索查询、索引和搜索流量的数据,Yahoo Site Explorer关闭之后,很多功能也整合进了Bing Webmaster Tools里。
3、 百度站长平台:百度站长工具,提供了用户提交Sitemap的功能,Ping服务,并给出了一些URL优化建议、网站安全检测工具。
4、 360站长平台:360站长工具,提供Sitemap提交、URL收录、索引量查询、关键字分析等功能。
5、 搜狗站长平台:搜狗的站长工具,提供Sitemap提交、死链提交、URL提交、域名变更、抓取压力反馈等功能。
外链检查工具
外链检查工具用于查询各个(特别是竞争对手)网站的外链情况,通常不需要登录即可使用。
1、 Yahoo Site Explorer:Yahoo的外链数据公认是最准确的,所以该工具也有很大参考意义,可惜这个本来很不错的一个工具,却被Yahoo给关闭了。
2、 Open Site Explorer:这个工具和Yahoo Site Explorer非常类似,可以分析出链接网站的域名数,链接按照权重进行排序。不过其分析的链接对中文网站不太准,无法识别百度搜索引擎,费用较高,PRO版每月要99美元。
3、 Majestic SEO:好用的外链查询工具,可以索引相当多的链接,可惜不是免费的。自己管理的网站可以免费查询,不过需要上传一个文件进行校验。竞争对手的网站可以查询出链接总数和头五个链接,更多查询链接需要收费。
流量查询工具
流量查询工具用于粗略估算各个网站的流量情况,通常不需要登录即可使用。
1、 Alexa:Alexa做为较具权威性的排名统计平台,能够提供各个网站排名信息、网络流量数据、关键词搜索分析、网站用户统计等功能。Alexa提供了简体中文网站服务。
2、 Google Website Trends:Google
Trends提供的网站流量查询服务,可以分析所有网站的流量和受欢迎程度,还可以用图表的方式比较同类相关网站的流量。和Alexa的界面相
比,Google Trends for
Websites的界面显得较为简单,提供的数据信息也很少,但Google趋势提供的信息具有较高的权威度,准确度也较高,可以大致比较两个不同网站的
流量大小。
3、 DoubleClick Ad Planner :DoubleClick Ad Planner的前身是Google Ad Planner,通过DoubleClick Ad Planner这一免费的媒体规划工具可以优化用户的在线广告,该工具提供了各种网站的访问量统计,以便广告商能根据访问量知道投放广告的最佳选择。
关键字查询工具
1、 Google Trends:Google
Trends(谷歌趋势)是一款基于搜索日志分析的应用产品,通过分析Google数据库中的搜索结果,告诉用户某一搜索关键词在Google中被搜索的
频率和相关统计数据。在Google
Trends中的每一关键词的趋势记录图形显示分为搜索量和新闻引用量两部分,用户可直观的分别看到每一关键词在Google全球的搜索量和相关新闻的引
用情况的变化走势,并有详细的城市、国家/地区、语言柱状图显示。
2、 Google Insights Search:Google
Insights Search(谷歌搜索解析)实际上和Google Trends的功能差不多,但是细节方面比Google
Trends多,显得更为专业。Google Insights Search可以比较特定区域、类别、时间范围以及搜索资源之间的搜索量。
3、 百度指数:
百度指数和Google
Trends的功能差不多,不过其搜索数据是基于百度搜索引擎的,这个工具是以百度网页搜索和百度新闻搜索为基础的数据分析服务,用来分析不同关键词在过
去一段时间里的“用户关注度”和“媒体关注度”,对于中国用户来说,这个关键字分析工具很有用。
4、 Google AdWords关键字工具:Google
AdWords关键字工具可以帮助用户选择关键字并跟踪关键字效果。可以根据用户指定的关键字自动生成最常用同义词及相关词组列表,并为用户提供关键字的
点击量估算。其“流量估算工具”还可以估算指定关键字的全球每月搜索量以及本地每月搜索量,适合于挖掘信息量很大的垂直型门户网站的长尾关键词。
关键字排行工具
1、百度搜索风云榜:百度发布的每日关键词排行榜,根据前一天的百度搜索量统计自动计算生成,每天早上自动更新,实时更新当前网友最关注,搜索最热门的内容。
2、 Google Zeitgeist:Google Zeitgeist是Google发布的年度关键词排行榜,针对每年Google查询进行统计,收集人们最关心的关键词,Google Zeitgeist提供热点关键字的年度列表,还提供不同主题和国家的列表。每日的排行列表目前只有英文版,由Google Trends提供。
3、 搜狗热搜榜:搜狗发布的每日关键词排行榜,根据搜狗的搜索数据生成。
网站统计工具
1、Google Analytics:Google推出的免费分析服务,对市场营销和内容优化上提供很多专业报表。
2、百度统计:百度推出的免费专业网站流量分析工具,功能和Google Analytics差不多。
3、CNZZ统计:国内站长用的较多的统计工具,功能简单实用,适合草根站长。
网站联盟
1、Google Adsense:谷歌联盟,站长投放最多的联盟广告,单价高,分成高,美元结算,申请方便,管理十分严格,一旦作弊永久封杀帐号。
2、百度联盟:国内站长使用较多的联盟,审核较严格,需要备案,人民币结算,付款方便,需要扣除个人所得税。
网站广告管家
1、Google DFP 广告管理系统:功能强大,但使用起来较为复杂,和Google Adsense完美整合。
2、百度广告管家:百度的广告管家工具,操作简单、容易上手,和百度联盟完美整合。
3、CNZZ广告管家:免费托管的智能广告管理系统,依托于数据统计,在国内的用户量也不小,功能与百度广告管家差不多。
网站安全检测
1、安全联盟:第三方安全组织,已与百度、腾讯、招商银行等近800家机构、企业等官方网站达成合作。
2、360网站安全检测:360网站安全检测,我认为是功能最全的系统了,提供免费的网站漏洞检测、网页挂马检测、网页篡改监控服务。
3、百度网站安全检测工具:很重要,引用腾讯、金山、瑞星、小红伞、知道创宇的数据库,如果你的网站已在搜索结果中被标示不安全,可以提交申诉。
4、腾讯电脑管家安全检测:在QQ聊天窗口中发的网址,会调用此数据库,作用较大。
5、监控宝:监控站点是否可以访问,发送故障通知,深入分析响应时间,生成性能报告,帮助您改善性能。
6、瑞星网站密码安全检测系统:通过全面的分析报告,为管理员提供快速修复网站密码安全隐患的建议。
7、诺顿在线网站安全检测:可以帮您了解网站的真实性与安全性,避免上网中病毒、木马,防止被钓鱼网站欺骗。
8、安全宝:特色功能,修复网站漏洞、免费mini CDN加速、可视化网站报告,创新工场旗下一员。
9、SCANV安全中心:与百度深入合作的安全检测网站,百度搜索结果的风险提示有部分数据就引用自SCANV,站长值得重视。
网站被封申诉通道
1、百度网页申诉:专人处理申诉问题,然后分发到各个小组处理。
2、Google网站申诉:登陆Google网站管理员工具即可。
3、腾讯电脑管家网站申诉:QQ聊天窗口输入网址出现绿色对勾、红色叉(不信任网站)均可以在这里申诉。
4、安全联盟申诉通道:百度搜索结果中出现的风险提示,均来自SCANV(知道创宇)的网址库。
5、360网盾申诉:360网盾拦截木马病毒网站,采取自动加人工的审核方法,核实您申诉的网址是否存在欺骗、不健康或者其他恶意信息的行为。
6、金山云安全网站申诉:主要通过杀毒软件拦截的网页,如果出现误报可以向金山申诉。
SNS分享工具
1、百度推荐工具:该工具是通过对用户访问内容和行为的数据分析,向用户相关的文章内容,以此提高网站流量和黏性。
2、多说评论:目前站长用的最多的插件了,第三方社会化评论系统,功能同上!
3、灯鹭社会化评论:功能最全的一款社会化工具,包含社会化登陆和分享功能,代码简洁、加载速度快,支持二次开发。
4、JiaThis分享:国内中小网站使用量最大的分享工具,数据分析强大,代码简洁。
5、bShare分享:社会化分享工具,可把文章一键分享到上百个社会化网站中。优点是与同类工具比后台统计数据全面、专业。
6、无觅相关文章插件:利用数据挖掘的技术,在读者阅读时显示最相关的内容,从而提升访问量,延长读者逗留在您网站的时间。
7、友言:一键同步评论留言分享到社交平台,实时采集SNS相关留言评论,迅速提升网站社会化流量。
8、友荐相关文章推荐工具:JiaThis旗下网站,与无觅相关文章插件类似,但代码简洁,同时还能在、各自合作网站实现站站互推。
9、乐知相关文章插件:bshare旗下网站,代码简洁,功能同上!
10、云推荐:阿里云旗下面向站长的智能文章推荐工具!基于阿里云先进的云计算系统,支持海量网页数据和用户行为数据的分析计算。
站长综合类查询工具
1、站长工具
Chinaz提供的系列SEO工具集,将不少SEO查询集中在一个页面。
2、爱站
爱站网以百度权重查询起家,之后提供了多种站长常用查询工具。
3、网站历史查询工具
美国互联网档案馆(The Internet Archive)保存了自1996年开始的各类网站的首页截图资料,不过该网站已经被中国屏蔽了。
nginx解析目录自动加斜杠的方法
原来windows的服务器换成了linux的nginx服务器,http://www.dnsdizhi.com/t却打不开了,仔细检查后发现http://www.dnsdizhi.com/t/却可以访问。原来不加斜杠时,服务器会访问文件名为t的文件,在windows系统中,如果文件名不存在,它会去访问t的目录,并会自动给目录加斜杠。但是linux系统不会自动判断请求的是一个文件还是一个目录,所以不会自动在请求的最后加上一个斜杠 /,因此http://www.dnsdizhi.com/t打不开。
解决方法:
在配置文件的 server 里加入如下代码:
if (-d $request_filename) {
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
但如果你的网址后面带了端口的话,那么转向时还是会出现403错误。
即 $host 变量把端口弄没了,改成 $http_host 即可
如下代码:
if (-d $request_filename) {
rewrite ^/(.*)([^/])$ http://$http_host/$1$2/ permanent;
}
这样再对 http://www.dnsdizhi.com/t 请求,nginx 就会进行判断了,如果请求的是一个文件夹,会自动在最后加上 / 符号,如果请求的是一个文件,则不会改变原有 url。
接下来对这段代码进行一个解释:
1、if (-d $request_filename),如果请求的是一个文件夹,则为真,进到if语句中执行
2、rewrite 是执行 url 重写操作。
3、^/(.*)([^/])$ 表示以/符号开始并紧跟着任何字符,同时不是以/为结束的字符串,在我的url 中,(.*) 表示的 news。
4、http://$host/$1$2/ 表示的重写后的地址,$host 是请求的域名,$1 是前面第一个括号里的内容,在我的 url 里就是 news。
5、permanent 表示,返回永久重定向的 HTTP 状态 301。
session.save_path的目录无读写权限导致session获取失败
session.save_path的目录对apache或者nginx运行用户无读写权限导致session获取失败
session
Session Support | enabled |
Registered save handlers | files user |
Registered serializer handlers | php_serialize php php_binary |
Directive | Local Value | Master Value |
---|---|---|
session.auto_start | Off | Off |
session.cache_expire | 180 | 180 |
session.cache_limiter | nocache | nocache |
session.cookie_domain | no value | no value |
session.cookie_httponly | Off | Off |
session.cookie_lifetime | 0 | 0 |
session.cookie_path | / | / |
session.cookie_secure | Off | Off |
session.entropy_file | /dev/urandom | /dev/urandom |
session.entropy_length | 32 | 32 |
session.gc_divisor | 1000 | 1000 |
session.gc_maxlifetime | 1440 | 1440 |
session.gc_probability | 1 | 1 |
session.hash_bits_per_character | 5 | 5 |
session.hash_function | 0 | 0 |
session.name | PHPSESSID | PHPSESSID |
session.referer_check | no value | no value |
session.save_handler | files | files |
session.save_path | no value | no value |
session.serialize_handler | php | php |
session.upload_progress.cleanup | On | On |
session.upload_progress.enabled | On | On |
session.upload_progress.freq | 1% | 1% |
session.upload_progress.min_freq | 1 | 1 |
session.upload_progress.name | PHP_SESSION_UPLOAD_PROGRESS | PHP_SESSION_UPLOAD_PROGRESS |
session.upload_progress.prefix | upload_progress_ | upload_progress_ |
session.use_cookies | On | On |
session.use_only_cookies | On | On |
session.use_strict_mode | Off | Off |
session.use_trans_sid | 0 | 0 |
trafficserver完胜nginx、squid的高性能CDN服务器
一 trafficserver介绍-一个高性能的、模块化的 HTTP 代理和缓存服务器
Apache Traffic Server(ATS或TS)是一个高性能的、模块化的 HTTP 代理和缓存服务器。Traffic Server 最初是 Inktomi 公司的商业产品,该公司在 2003 年被 Yahoo 收购,之后Traffic Server 一直在 Yahoo 内部使用长达 4 年,直到 2009 年 8 月 Yahoo 向 Apache 软件基金会(ASF)贡献了源代码,并于 2010 年 4 月成为了 ASF 的顶级项目(Top-Level Project)。Apache Traffic Server 现在是一个开源项目,开发语言为C++。
Traffic Server 的开发团队曾经由 Chuck Neerdaels 领导,他也是 Harvest 项目的早期创始人之一,Harvest 项目后来发展为十分流行的 Squid 项目;Leif Hedstrom 直接管理着现在的 Traffic Server 开发团队。目前 Chuck Neerdaels 和 Leif Hedstrom都已加盟知名 CDN 服务提供商Akamai。
HTTP 代理服务器是 HTTP 服务器的一种实现,处于客户端(一般为浏览器)与另一个 HTTP服务器之间(通常指源服务器,Origin Server)。HTTP 代理通常分为正向代理、反向代理和透明代理,我们主要关注的是反向代理(Reverse Proxy,见下图)反向代理服务器根据明确配置的映射规则来处理用户请求。反向代理服务器通常会设置一个较大的缓存区,服务器处理请求的同时将请求的内容缓存在服务器本地,当下次用户请求同一个对象时,服务器可直接从缓存区里取出对象,而不用去源服务器去取,起到了加速的效果。另外,配置反向代理的映射规则也能实现负载均衡的功能。除了 Traffic Server,常见的开源代理服务器还有 Squid,Varnish,Nginx,HAProxy。
Apache <wbr>Traffic <wbr>Server <wbr>简介
Traffic Server 在 Yahoo 内部使用了超过 4 年,主要用于 CDN 服务,CDN 用于分发特定的HTTP 内容,通常是静态的内容如图片、JavaScript、CSS。下面是Traffic Server 在 Yahoo CDN应用的一些情况:
超过 4 年的使用中,缓存中没有出现已知的数据损坏(data corruption);
作为反向代理,服务器方便部署和管理,并且大部分配置的更改可直接在线上服务器完成,而不用重启服务;
在高并发情况下扩展良好,支持 HTTP/1.1 协议特性,如 SSL、Keep-Alive;
在世界范围内部署了超过 100 台服务器;
在实际CDN中,每秒处理超过 350,000 次请求,达到 30 Gbps,最大容量至少十倍于普通使用,以应对高峰时的大量请求;
在实际 CDN 中,每台服务器有 20,000 到 30,000 的 keep-alive 并发连接,其中有 1,000 到 2,000 的连接是一直很活跃的;
实验环境中,单台服务器每秒处理 105,000 次请求,请求的对象是被缓存住的小文件;
实验环境中,请求大文件时,单台服务器达到 3.6 Gbps(4x GigE NIC bonded)。
二 组件、机制
Traffic Server(TS) 的组成
1.Traffic Server缓存
TS 缓存包含一个高速的对象数据库,数据库根据 URL 和相关头部来索引对象,对于同一对象可以缓存不同版本(如不同的编码、语言)。
当缓存空间满后,TS 会移除过期的数据。
当磁盘出错时,TS 将不再使用该块磁盘,转而使用剩下的磁盘。所有磁盘都出错时,TS 将切换至 proxy-only 模式,即只代理,不缓存。
可分区,即可以给指定的协议和源服务器划分一定数量的磁盘空间
2.RAM 缓存
内存缓存区储存比较热门的对象,在流量的高峰期时能加快处理速度和降低磁盘负载。
3.主机数据库
储存 DNS 信息,方便主机名到 IP 地址的快速转换
储存每个主机的 HTTP 版本,方便高级协议特性的使用
储存主机的可靠性和可用性信息
4.DNS 解析器
TS 原生实现了 DNS 解析器,不依赖较慢的传统解析库。同时也降低了 DNS 的流量。
5.Traffic Server 进程
traffic_server 进程负责接受连接,处理协议请求,然后从缓存或源服务器获取对象并返回
traffic_manager 进程是 TS 的命令和控制设施,负责启动、监控和配置 traffic_server 进程,它也负责代理的端口配置、统计信息的接口、集群管理和虚拟 IP 的故障转移。
如果 traffic_manager 检测到 traffic_server 进程失效,它立即重启 traffic_server 进程并且维护一个连接队列,保存此时到来的请求,完全重启后这个队列里的连接将按顺序被处理。
traffic_cop 进程监视 traffic_server 和 traffic_manager 进程,此进程周期性的查询 traffic_server 和 traffic_manager 进程的健康状况,如果查询在一定间隔时间内未返回或者返回信息不正确,traffic_cop 将重启 traffic_manager 和 traffic_server 进程。
Apache <wbr>Traffic <wbr>Server <wbr>简介
6.管理工具
Traffic Line 是命令行程序,可以用来快速监视 Traffic Server 的性能和网络流量,也能配置 TS。
Traffic Shell 也是命令行工具,进入该 shell 后有自己一套语法,可代替 Traffic Line 完成监控、配置任务。
通过 Traffic Line 和 Traffic Shell 对配置作出的修改将会自动写入配置文件中。
Traffic Server 的底层机制
Apache Traffic Server 不同于大部分开源代理服务器,它结合了两种技术来处理高并发:
异步事件处理(Asynchronous event processing)
多线程(Multi-threading)
Traffic Server 在多 CPU、多核的硬件上扩展良好,能充分利用所有可用的 CPU 和其他资源。
HTTP 代理缓存相关机制
1. Traffic Server 处理请求的过程
1)用户请求一个 web 对象,TS 收到请求
2)TS 通过对象的地址,在对象数据库(缓存)中去定位该对象
a.如果对象在缓存中,TS 会检查对象是否新鲜(fresh)
如果新鲜,TS 从缓存里返回该对象给用户,此时称为缓存命中(cache hit)
如果不新鲜(stale),TS 会连接源服务器去验证对象是否仍然新鲜,即重新验证(revalidation),如果仍然新鲜,TS 立即将缓存中的副本返回给用户
b.如果对象不在缓存中(缓存未命中,cache miss),或者缓存的副本不再有效,TS 会去源服务器获取对象,然后同时做下面两件事
将对象返回给用户
将对象放到本地缓存中
2. Traffic Server 判断 HTTP 对象是否新鲜(fresh)的过程
如果有 Expires 或者 max-age 头部直接定义缓存的过期时间,TS将对比当前时间和过期时间去判断对象是否新鲜
如果没有上述头部,TS 将检查 Last-Modified 和 Date 头部(其中Date是源服务器返回对象的时间,如果没有 Last-Modified 头部,TS 会用对象写入缓存的时间以作代替),然后用以下公式算出新鲜的时间范围(freshness_limit,可理解为保质期):
freshness_limit = ( Date – Last-Modified ) x 0.1
0.1 这个参数可以作调整,并且能限制 freshness_limit 的上下限,默认最小是 1 小时,最大是 1 天
如果没有 Expires 头部或者没有 Last-Modified、Date 头部,TS 将使用默认的 fressness limit
另外,TS 还会检查 cache.config 配置文件中的 revalidate 规则,该规则可以对特定的 HTTP 对象设置特定的验证时间(特定的域名、IP、一定规则的 URL、特定的客户端等等)
3. 缓存过期(stale),Traffic Server 去源服务器重新验证对象可能的情况
仍然 fresh,TS 重置 freshness_limit,并返回对象
对象新副本可用,TS 缓存新对象,并同时返回给用户
源服务器上的对象不再存在,TS 也不再返回该副本给用户
源服务器没有响应,TS 返回过期的对象并发出警告。
更详细的说明请查看 Traffic Server 管理文档中的 HTTP Proxy Caching 部分
三 安装、使用
Apache Traffic Server 开源后添加了 64 位支持,也移植到了常见的 Linux 发行版、FreeBSD、OpenSolaris 和 Mac OS X,开源之前 Yahoo Traffic Server 一直运行在 32-bit Linux 上。
(以 Apache Traffic Server 2.1.1 unstable 为例在 32-bit Linux 环境下进行安装测试)
安装
1. 下载、解压
wget http://www.apache.org/dist/trafficserver/trafficserver-2.1.1-unstable.tar.bz2
wget http://www.apache.org/dist/trafficserver/trafficserver-2.1.1-unstable.tar.bz2.md5
md5sum -c trafficserver-2.1.1-unstable.tar.bz2.md5
tar jxvf trafficserver-2.1.1-unstable.tar.bz2
cd trafficserver-2.1.1-unstable
2. 编译、安装
查看 README 说明文档,安装编译依赖的库(centos 可参照 fedora 依赖的软件包,pcre包替换为 pcre-devel 即可)
./configure –help 查看编译的一些选项
./configure (默认安装在 /usr/local,如需修改,使用 –prefix=PREFIX;参数中还有用户和用户组选项,这是 TS 进程运行的身份,默认均为 nobody,centos 可以不作修改,其他发行版可能需要修改,如 ./configure –with-group=nogroup)
make
make install 以管理员身份执行
目录结构
默认目录
内容
/usr/local/var/log/trafficserver
运行时创建的日志文件
/usr/local/var/trafficserver
运行时的一系列文件
/usr/local/etc/trafficserver
配置文件
/usr/local/bin
可执行文件
/usr/local/libexec/trafficserver
插件
初步配置
records.config 是 key-value 格式的配置文件,负责大部分全局的选项设置,即主配置文件。
storage.config 用于指定磁盘存储。
remap.config 定义映射规则,用于请求的重写(rewrite),反向代理即在此配置。
records.config 中关键的配置
CONFIG proxy.config.exec_thread.autoconfig INT 1
CONFIG proxy.config.exec_thread.autoconfig.scale FLOAT 2.0
CONFIG proxy.config.exec_thread.limit INT 2 # 经观察是每个核创建的线程数,官方文档中未提及
CONFIG proxy.config.cluster.ethernet_interface STRING eth0 # 设置以太网接口
CONFIG proxy.config.http.server_port INT 8080 # 监听端口,反向代理通常为80
LOCAL proxy.local.incoming_ip_to_bind STRING 0.0.0.0 # 绑定的 IP,可省略,默认即为 0.0.0.0
CONFIG proxy.config.http.cache.http INT 1 # 打开缓存功能
CONFIG proxy.config.cache.ram_cache.size INT 512M # RAM 缓存大小
CONFIG proxy.config.reverse_proxy.enabled INT 1 # 打开
CONFIG proxy.config.url_remap.remap_required INT 1 # 1为只反向代理,0为正向+反向代理
CONFIG proxy.config.url_remap.pristine_host_hdr INT 0
CONFIG proxy.config.ssl.enabled INT 0 # 关闭SSL
CONFIG proxy.config.ssl.server.cert.filename STRING server.pem
CONFIG proxy.config.http.server_max_connections INT 2000 # 同源服务器的最大连接数
CONFIG proxy.config.http.keep_alive_no_activity_timeout_out INT 60 # 当一个事务结束后同原服务器保持连接的时间
remap.config 配置
map http://cdn.example.com/js http://js.example.com # 通过 DNS 轮询可实现负载均衡
reverse_map http://js.example.com http://cdn.example.com/js # reverse_map 能在源服务器 有 HTTP重定向跳转时,修改重定向请求,即重写 Location 头部内容
map http://cdn.example.com/css http://css.example.com
reverse_map http://css.example.com http://cdn.exampe.com/css
map http://cdn.example.com/img http://img.example.com
reverse_map http://img.example.com http://cdn.example.com/img
storage.config 配置
/data1 67108864 # 指定一个或多个目录,注明缓存大小,也可直接指定 raw 分区,详见storage.config 中的注释说明
更详细的配置可参考官方管理指南 http://trafficserver.apache.org/docs/v2/admin/
服务控制
运行 /usr/local/bin/trafficserver start
结束 /usr/local/bin/trafficserver stop
重启 /usr/local/bin/trafficserver restart
命令行工具、监控
/usr/local/bin/traffic_line 需用管理员身份执行
查看帮助 traffic_line -h
查看变量的值 traffic_line -r 变量名 (变量名见官方管理指南附录C,含 TS 运行时统计数据)
给变量赋值 traffic_line -s 变量名 -v 值 (变量名见records.config)
不重启TS 使配置生效 traffic_line -x
/usr/local/bin/traffic_shell 需用管理员身份执行,进入后提示符为“%”
查看帮助 man traffic_shell (由于开发者疏忽,暂不能用)
show 命令,如 %show:cache-stats 查看缓存统计,如命中情况,缓存大小;如%show:proxy-stats 查看命中率
config 命令,如 %config:logging event disable 关闭日志;如 %config:cache clear,清除缓存,config命令作出的修改都会立即生效
/usr/local/bin/traffic_logcat 日志查看工具
traffic_logcat -h 获得帮助
查看二进制日志 traffic_logcat 日志文件名
Traffic Server 系统自身的运行日志可在 /var/log/message 中查看(centos),用于排错
traffic_logstats 提供了基于日志的统计功能
四 结论
Apache Traffic Server 开源后功能在不断被开发,性能得到很大提升,社区也在逐渐发展,但除了 Yahoo 之外还很少有其他实践,很多功能(如集群)的文档有待完善。Traffic Server 丰富的插件开发是其一大亮点,模块化的特点使其拥有很好的扩展性和灵活性,再加上它的高性能,相信 Apache Traffic Server 未来将在很多场景中替代传统的代理和缓存服务器而成为大家的首选。
HTTP 代理服务器是 HTTP 服务器的一种实现,处于客户端(一般为浏览器)与另一个 HTTP服务器之间(通常指源服务器,Origin Server)。HTTP 代理通常分为正向代理、反向代理和透明代理,我们主要关注的是反向代理(Reverse Proxy,见下图)反向代理服务器根据明确配置的映射规则来处理用户请求。反向代理服务器通常会设置一个较大的缓存区,服务器处理请求的同时将请求的内容缓存在服务器本地,当下次用户请求同一个对象时,服务器可直接从缓存区里取出对象,而不用去源服务器去取,起到了加速的效果。另外,配置反向代理的映射规则也能实现负载均衡的功能。除了 Traffic Server,常见的开源代理服务器还有 Squid,Varnish,Nginx,HAProxy。
Apache <wbr>Traffic <wbr>Server <wbr>简介
超过 4 年的使用中,缓存中没有出现已知的数据损坏(data corruption);
作为反向代理,服务器方便部署和管理,并且大部分配置的更改可直接在线上服务器完成,而不用重启服务;
在高并发情况下扩展良好,支持 HTTP/1.1 协议特性,如 SSL、Keep-Alive;
在世界范围内部署了超过 100 台服务器;
在实际CDN中,每秒处理超过 350,000 次请求,达到 30 Gbps,最大容量至少十倍于普通使用,以应对高峰时的大量请求;
在实际 CDN 中,每台服务器有 20,000 到 30,000 的 keep-alive 并发连接,其中有 1,000 到 2,000 的连接是一直很活跃的;
实验环境中,单台服务器每秒处理 105,000 次请求,请求的对象是被缓存住的小文件;
实验环境中,请求大文件时,单台服务器达到 3.6 Gbps(4x GigE NIC bonded)。
二 组件、机制
1.Traffic Server缓存
TS 缓存包含一个高速的对象数据库,数据库根据 URL 和相关头部来索引对象,对于同一对象可以缓存不同版本(如不同的编码、语言)。
当缓存空间满后,TS 会移除过期的数据。
当磁盘出错时,TS 将不再使用该块磁盘,转而使用剩下的磁盘。所有磁盘都出错时,TS 将切换至 proxy-only 模式,即只代理,不缓存。
可分区,即可以给指定的协议和源服务器划分一定数量的磁盘空间
2.RAM 缓存
内存缓存区储存比较热门的对象,在流量的高峰期时能加快处理速度和降低磁盘负载。
3.主机数据库
储存 DNS 信息,方便主机名到 IP 地址的快速转换
储存每个主机的 HTTP 版本,方便高级协议特性的使用
储存主机的可靠性和可用性信息
4.DNS 解析器
TS 原生实现了 DNS 解析器,不依赖较慢的传统解析库。同时也降低了 DNS 的流量。
5.Traffic Server 进程
traffic_server 进程负责接受连接,处理协议请求,然后从缓存或源服务器获取对象并返回
traffic_manager 进程是 TS 的命令和控制设施,负责启动、监控和配置 traffic_server 进程,它也负责代理的端口配置、统计信息的接口、集群管理和虚拟 IP 的故障转移。
如果 traffic_manager 检测到 traffic_server 进程失效,它立即重启 traffic_server 进程并且维护一个连接队列,保存此时到来的请求,完全重启后这个队列里的连接将按顺序被处理。
traffic_cop 进程监视 traffic_server 和 traffic_manager 进程,此进程周期性的查询 traffic_server 和 traffic_manager 进程的健康状况,如果查询在一定间隔时间内未返回或者返回信息不正确,traffic_cop 将重启 traffic_manager 和 traffic_server 进程。
Apache <wbr>Traffic <wbr>Server <wbr>简介
6.管理工具
Traffic Line 是命令行程序,可以用来快速监视 Traffic Server 的性能和网络流量,也能配置 TS。
Traffic Shell 也是命令行工具,进入该 shell 后有自己一套语法,可代替 Traffic Line 完成监控、配置任务。
通过 Traffic Line 和 Traffic Shell 对配置作出的修改将会自动写入配置文件中。
Traffic Server 的底层机制
异步事件处理(Asynchronous event processing)
多线程(Multi-threading)
Traffic Server 在多 CPU、多核的硬件上扩展良好,能充分利用所有可用的 CPU 和其他资源。
HTTP 代理缓存相关机制
1. Traffic Server 处理请求的过程
1)用户请求一个 web 对象,TS 收到请求
2)TS 通过对象的地址,在对象数据库(缓存)中去定位该对象
a.如果对象在缓存中,TS 会检查对象是否新鲜(fresh)
如果新鲜,TS 从缓存里返回该对象给用户,此时称为缓存命中(cache hit)
如果不新鲜(stale),TS 会连接源服务器去验证对象是否仍然新鲜,即重新验证(revalidation),如果仍然新鲜,TS 立即将缓存中的副本返回给用户
b.如果对象不在缓存中(缓存未命中,cache miss),或者缓存的副本不再有效,TS 会去源服务器获取对象,然后同时做下面两件事
将对象返回给用户
将对象放到本地缓存中
2. Traffic Server 判断 HTTP 对象是否新鲜(fresh)的过程
如果有 Expires 或者 max-age 头部直接定义缓存的过期时间,TS将对比当前时间和过期时间去判断对象是否新鲜
如果没有上述头部,TS 将检查 Last-Modified 和 Date 头部(其中Date是源服务器返回对象的时间,如果没有 Last-Modified 头部,TS 会用对象写入缓存的时间以作代替),然后用以下公式算出新鲜的时间范围(freshness_limit,可理解为保质期):
freshness_limit = ( Date – Last-Modified ) x 0.1
0.1 这个参数可以作调整,并且能限制 freshness_limit 的上下限,默认最小是 1 小时,最大是 1 天
如果没有 Expires 头部或者没有 Last-Modified、Date 头部,TS 将使用默认的 fressness limit
另外,TS 还会检查 cache.config 配置文件中的 revalidate 规则,该规则可以对特定的 HTTP 对象设置特定的验证时间(特定的域名、IP、一定规则的 URL、特定的客户端等等)
3. 缓存过期(stale),Traffic Server 去源服务器重新验证对象可能的情况
仍然 fresh,TS 重置 freshness_limit,并返回对象
对象新副本可用,TS 缓存新对象,并同时返回给用户
源服务器上的对象不再存在,TS 也不再返回该副本给用户
源服务器没有响应,TS 返回过期的对象并发出警告。
更详细的说明请查看 Traffic Server 管理文档中的 HTTP Proxy Caching 部分
Apache Traffic Server 开源后添加了 64 位支持,也移植到了常见的 Linux 发行版、FreeBSD、OpenSolaris 和 Mac OS X,开源之前 Yahoo Traffic Server 一直运行在 32-bit Linux 上。
(以 Apache Traffic Server 2.1.1 unstable 为例在 32-bit Linux 环境下进行安装测试)
安装
1. 下载、解压
wget http://www.apache.org/dist/trafficserver/trafficserver-2.1.1-unstable.tar.bz2
wget http://www.apache.org/dist/trafficserver/trafficserver-2.1.1-unstable.tar.bz2.md5
md5sum -c trafficserver-2.1.1-unstable.tar.bz2.md5
tar jxvf trafficserver-2.1.1-unstable.tar.bz2
cd trafficserver-2.1.1-unstable
2. 编译、安装
查看 README 说明文档,安装编译依赖的库(centos 可参照 fedora 依赖的软件包,pcre包替换为 pcre-devel 即可)
./configure –help 查看编译的一些选项
./configure (默认安装在 /usr/local,如需修改,使用 –prefix=PREFIX;参数中还有用户和用户组选项,这是 TS 进程运行的身份,默认均为 nobody,centos 可以不作修改,其他发行版可能需要修改,如 ./configure –with-group=nogroup)
make
make install 以管理员身份执行
默认目录
内容
/usr/local/var/log/trafficserver
运行时创建的日志文件
/usr/local/var/trafficserver
运行时的一系列文件
/usr/local/etc/trafficserver
配置文件
/usr/local/bin
可执行文件
/usr/local/libexec/trafficserver
插件
初步配置
records.config 是 key-value 格式的配置文件,负责大部分全局的选项设置,即主配置文件。
storage.config 用于指定磁盘存储。
remap.config 定义映射规则,用于请求的重写(rewrite),反向代理即在此配置。
records.config 中关键的配置
CONFIG proxy.config.exec_thread.autoconfig INT 1
CONFIG proxy.config.exec_thread.autoconfig.scale FLOAT 2.0
CONFIG proxy.config.exec_thread.limit INT 2 # 经观察是每个核创建的线程数,官方文档中未提及
CONFIG proxy.config.cluster.ethernet_interface STRING eth0 # 设置以太网接口
CONFIG proxy.config.http.server_port INT 8080 # 监听端口,反向代理通常为80
LOCAL proxy.local.incoming_ip_to_bind STRING 0.0.0.0 # 绑定的 IP,可省略,默认即为 0.0.0.0
CONFIG proxy.config.http.cache.http INT 1 # 打开缓存功能
CONFIG proxy.config.cache.ram_cache.size INT 512M # RAM 缓存大小
CONFIG proxy.config.reverse_proxy.enabled INT 1 # 打开
CONFIG proxy.config.url_remap.remap_required INT 1 # 1为只反向代理,0为正向+反向代理
CONFIG proxy.config.url_remap.pristine_host_hdr INT 0
CONFIG proxy.config.ssl.enabled INT 0 # 关闭SSL
CONFIG proxy.config.ssl.server.cert.filename STRING server.pem
CONFIG proxy.config.http.server_max_connections INT 2000 # 同源服务器的最大连接数
CONFIG proxy.config.http.keep_alive_no_activity_timeout_out INT 60 # 当一个事务结束后同原服务器保持连接的时间
remap.config 配置
map http://cdn.example.com/js http://js.example.com # 通过 DNS 轮询可实现负载均衡
reverse_map http://js.example.com http://cdn.example.com/js # reverse_map 能在源服务器 有 HTTP重定向跳转时,修改重定向请求,即重写 Location 头部内容
map http://cdn.example.com/css http://css.example.com
reverse_map http://css.example.com http://cdn.exampe.com/css
map http://cdn.example.com/img http://img.example.com
reverse_map http://img.example.com http://cdn.example.com/img
storage.config 配置
/data1 67108864 # 指定一个或多个目录,注明缓存大小,也可直接指定 raw 分区,详见storage.config 中的注释说明
更详细的配置可参考官方管理指南 http://trafficserver.apache.org/docs/v2/admin/
运行 /usr/local/bin/trafficserver start
结束 /usr/local/bin/trafficserver stop
重启 /usr/local/bin/trafficserver restart
命令行工具、监控
/usr/local/bin/traffic_line 需用管理员身份执行
查看帮助 traffic_line -h
查看变量的值 traffic_line -r 变量名 (变量名见官方管理指南附录C,含 TS 运行时统计数据)
给变量赋值 traffic_line -s 变量名 -v 值 (变量名见records.config)
不重启TS 使配置生效 traffic_line -x
/usr/local/bin/traffic_shell 需用管理员身份执行,进入后提示符为“%”
查看帮助 man traffic_shell (由于开发者疏忽,暂不能用)
show 命令,如 %show:cache-stats 查看缓存统计,如命中情况,缓存大小;如%show:proxy-stats 查看命中率
config 命令,如 %config:logging event disable 关闭日志;如 %config:cache clear,清除缓存,config命令作出的修改都会立即生效
/usr/local/bin/traffic_logcat 日志查看工具
traffic_logcat -h 获得帮助
查看二进制日志 traffic_logcat 日志文件名
Traffic Server 系统自身的运行日志可在 /var/log/message 中查看(centos),用于排错
traffic_logstats 提供了基于日志的统计功能
四 结论
Apache Traffic Server 开源后功能在不断被开发,性能得到很大提升,社区也在逐渐发展,但除了 Yahoo 之外还很少有其他实践,很多功能(如集群)的文档有待完善。Traffic Server 丰富的插件开发是其一大亮点,模块化的特点使其拥有很好的扩展性和灵活性,再加上它的高性能,相信 Apache Traffic Server 未来将在很多场景中替代传统的代理和缓存服务器而成为大家的首选。