科技公司钟爱的50款开源工具

JavaScript09

科技公司钟爱的50款开源工具,第1张

大数据

1. Hadoop

Apache主持的这个项目是最广为人知的大数据工具。众多公司为Hadoop提供相关产品或商业支持,包括亚马逊网络服务、Cloudera、Hortonworks、IBM、Pivotal、Syncsort和VMware。知名用户包括:阿里巴巴、美国在线、电子港湾、Facebook、谷歌、Hulu、领英、Spotify、推特和雅虎。

支持的操作系统:Windows、Linux和OS X

相关网站:http://hadoop.apache.org

2. Hypertable

Hypertable在互联网公司当中非常流行,它由谷歌开发,用来提高数据库的可扩展性。用户包括百度、电子港湾、Groupon和Yelp。它与Hadoop兼容,提供商业支持和培训。

支持的操作系统:Linux和OS X

相关网站:http://www.hypertable.com

3. Mesos

Apache Mesos是一种资源抽象工具,有了它,企业就可以鼗整个数据中心当成一个资源池,它在又在运行Hadoop、Spark及类似应用程序的公司当中很流行。使用它的企业组织包括:Airbnb、欧洲原子核研究组织(CERN)、思科、Coursera、Foursquare、Groupon、网飞(Netflix)、推特和优步。

支持的操作系统:Linux和OS X

相关网站:http://mesos.apache.org

4. Presto

Presto由Facebook开发,自称是“一款开源分布式SQL查询引擎,用于对大大小小(从GB级到PB级)的数据源运行交互式分析查询。”Facebook表示,它将Presto用于对300PB大小的数据仓库执行查询,其他用户包括Airbnb和Dropbox。

支持的操作系统:Linux

相关网站:https://prestodb.io

5. Solr

这种“快若闪电”的企业搜索平台声称高度可靠、扩展和容错。使用它的公司包括:AT&T、Ticketmaster、康卡斯特、Instagram、网飞、IBM、Adobe和SAP Hybris。

支持的操作系统:与操作系统无关

相关网站:http://lucene.apache.org/solr/

6. Spark

Apache Spark声称,“它在内存中运行程序的速度比Hadoop MapReduce最多快100倍,在磁盘上快10倍。”Spark“支持”的企业组织包括:亚马逊、百度、Groupon、日立解决方案、IBM、MyFitnessPal、诺基亚和雅虎。

支持的操作系统:Windows、Linux和OS X

相关网站:http://spark.apache.org

7. Storm

正如Hadoop用来处理批量数据,Apache Storm用来处理实时数据。官方网站上显示用户包括:天气频道、推特、雅虎、WebMD、Spotify、威瑞信(Verisign)、Flipboard和Klout。

支持的操作系统:Linux

相关网站:https://storm.apache.org

云计算

8. Cloud Foundry

Cloud Foundry提供用于构建平台即服务的开源工具。它声称“由行业领袖为行业领袖构建”,其支持者包括IBM、 Pivotal、惠普企业、VMware、英特尔、SAP和EMC。

支持的操作系统:Linux

相关网站:https://www.cloudfoundry.org

9. CloudStack

这个交钥匙IaaS解决方案构成了许多公共云和私有云的基础。它的用户极多,包括阿尔卡特-朗讯、苹果、Autodesk、英国电信、冠群科技、思杰、Cloudera、戴尔、富士通、SAP和韦里逊。

支持的操作系统:与操作系统无关

相关网站:http://cloudstack.apache.org

10. OpenStack

这种很受欢迎的云计算平台声称,“世界上成百上千个大品牌”每天依赖它。支持者包括:AT&T、Ubuntu、惠普企业、IBM、英特尔、Rackspace、红帽、SUSE、思科、戴尔、EMC、赛门铁克及另外许多知名科技公司。

支持的操作系统:与操作系统无关

相关网站:http://www.openstack.org

11. Scalr

这种云管理平台备受市场研究公司的好评,它简化了管理多个云环境的过程。知名用户包括Expedia、三星、美国宇航局喷气推进实验室、埃森哲、索尼和Autodesk。

支持的操作系统:Linux

相关网站:http://www.scalr.com

容器

12. Docker

Docker在相对新兴的容器领域迅速确立起了主导平台这一地位。科技界的许多大牌公司在构建或提供扩展或使用Docker技术的产品,包括亚马逊、微软、IBM、惠普企业、红帽、Rackspace和Canonical。

支持的操作系统:Windows、Linux和OS X

相关网站:https://www.docker.com

输入标题 内容管理

13. DNN

这款内容管理解决方案之前名为DotNetNuke,承诺构建丰富的交互式网站时,只要花较少的精力,就能收到显著的成效。用户包括佳能、时代华纳有线电视、德州仪器和美国银行。

支持的操作系统:Windows

相关网站:http://www.dnnsoftware.com

14. Drupal

Drupal声称,98000多个开发人员在为这个极其流行的内容管理系统积极贡献代码。支持者包括微软、Zend、Fastly和New Relic,其内容市场有数百家公司参与其中,它们提供了相关的产品和服务。

支持的操作系统:与操作系统无关

相关网站:https://www.drupal.org

15. Joomla

Joomla为数百万个网站提供平台,其下载量超过了5000万人次。许多用户当中就有这些公司:电子港湾、巴诺书店、MTV和标致。

支持的操作系统:与操作系统无关

相关网站:https://www.joomla.org

16. MediaWiki

MediaWiki以维基百科使用的软件而出名,它还为百度、Vistaprint、Novell、英特尔和美国宇航局支持网站。它是构建可编辑网页的不错选择,许多企业组织用它来构建内部知识库。

支持的操作系统:Windows、Linux/Unix和OS X

相关网站:https://www.mediawiki.org/wiki/MediaWiki

数据库

17. Cassandra

这种NoSQL数据库由Facebook开发,其用户包括苹果、欧洲原子核研究组织(CERN)、康卡斯特、电子港湾、GitHub、GoDaddy、Hulu、Instagram、Intuit、网飞、Reddit及其他科技公司。它支持极其庞大的数据集,声称拥有非常高的性能和出色的耐用性和弹性。可通过第三方获得支持。

支持的操作系统:与操作系统无关

相关网站:http://cassandra.apache.org

18. CouchDB

CouchDB为Web而开发,这种NoSQL数据库将数据存储在JSON文档中,这类文档可通过HTTP来加以查询,并用JavaScript来处理。Cloudant现在归IBM所有,它提供一款专业人员支持的软件版本,用户包括:三星、Akamai、Expedia、微软游戏工作室及其他公司。

支持的操作系统:Windows、Linux、OS X和安卓

相关网站:http://couchdb.apache.org

19. MongoDB

MongoDB是一种NoSQL数据库,声称“针对关键任务型部署环境进行了优化”,用户包括Foursquare、《福布斯》、Pebble、Adobe、领英、eHarmony及其他公司。提供收费的专业版和企业版。

支持的操作系统:Windows、Linux、OS X和Solaris

相关网站:http://www.mongodb.org

20. MySQL

MySQL自称是“世界上最流行的开源数据库”,备受众多互联网公司的青睐,比如YouTube、贝宝、谷歌、Facebook、推特、电子港湾、领英、优步和亚马逊。除了免费社区版外,它还有多款收费版。最新更新版声称速度比老版本快三倍。

支持的操作系统:Windows、Linux、Unix和OS X

相关网站:http://www.mysql.com

21. Neo4j

Neo4J自诩为“世界上领先的图形数据库”,用于欺诈检测、推荐引擎、社交网站、主数据管理及更多领域。用户包括电子港湾、沃尔玛、思科、惠普、埃森哲、CrunchBase、eHarmony、Care.com及另外许多企业组织。

支持的操作系统:Windows和Linux

相关网站:http://neo4j.com

开发工具

22. Bugzilla

Bugzilla是开源社区的宠儿,用户包括Mozilla、Linux基金会、GNOME、KDE、Apache、LibreOffice、Open Office、Eclipse、红帽、Novell及其他公司。这款软件缺陷追踪系统(bugtracker)的重要功能包括:高级搜索功能、电子邮件通知、预定报告、时间追踪、出色的安全及更多特性。

支持的操作系统:Windows、Linux和OS X

相关网站:https://www.bugzilla.org

23. Eclipse

Eclipse项目最为知名的是,它是一种大受欢迎的面向Java的集成开发环境(IDE),它还提供面向C/C++和PHP的IDE,此外提供另外一大批开发工具。主要支持者包括冠群科技、谷歌、IBM、甲骨文、红帽和SAP。

支持的操作系统:与操作系统无关

相关网站:http://www.eclipse.org

24. Ember.js

这种框架用于“构建野心勃勃的Web应用程序”,旨在为JavaScript开发人员提高工作效率。官方网站上显示用户包括雅虎、Square、Livingsocial、Groupon、Twitch、TED、网飞、Heroku和微软。

支持的操作系统:与操作系统无关

相关网站: http://emberjs.com

25. Grunt

Grunt是一种JavaScript任务运行工具,有助于自动处理重复性的开发任务。使用它的知名科技公司包括:Adobe、推特、Mozilla、Cloudant和WordPress。

支持的操作系统:与操作系统无关

相关网站:http://gruntjs.com

26. LoopBack

这个Node.js框架旨在让用户很容易构建REST API,并连接到后端数据存储区。知名用户包括GoDaddy、美国能源部和赛门铁克。

支持的操作系统:Windows、Linux、OS X、安卓和iOS

相关网站:http://loopback.io

27. Node.js

Node.js的成名之处在于,它让开发人员可以使用JavaScript,编写服务器端应用程序。开发工作之前由Joyent管控,现在交由Node.js基金会监管。用户包括IBM、微软、雅虎、SAP、领英、贝宝和网飞。

支持的操作系统:Windows、Linux和OS X

相关网站:https://nodejs.org/en/

28. PhoneGap

Apache Cordova是一种开源框架,让开发人员可以使用HTML、CSS和JavaScript等Web技术,构建移动应用程序。PhoneGap是最受欢迎的Cordova发行版。使用某一种Cordova发行版的科技公司包括:维基百科、Facebook、 Salesforce、IBM、微软、Adobe和黑莓。

支持的操作系统:Window、Linux和OS X

相关网站:http://phonegap.com

29. React Native

React Native由Facebook开发,这种框架可用于使用JavaScript和React JavaScript库(同样由Facebook开发),构建原生移动应用程序。其他用户包括:《探索》频道和CBS体育新闻网。

支持的操作系统:OS X

相关网站:http://facebook.github.io/react-native/

30. Ruby on Rails

这个Web开发框架在开发人员当中极其流行,它声称“为确保编程员满意和持续高效地工作进行了优化”。用户包括Basecamp、推特、Shopify和GitHub等公司。

支持的操作系统:Windows、Linux和OS X

相关网站:http://rubyonrails.org

31. Sencha Touch

Sencha Touch自称是“一种用于构建通用移动应用程序的领先的跨平台移动Web应用程序框架,基于HTML5和JavaScript”。它既有开源许可证版本,也有商业许可证版本。据官方网站声称,《财富》100强中60%使用它。

支持的操作系统:与操作系统无关

相关网站:https://www.sencha.com/products/touch/

32. ZK

索尼、Sun、IBM、Adobe、电子港湾、富士通、梦工厂和优利系统等公司使用这种Java Web框架来构建Web和移动应用程序。提供收费支付及相关工具。

支持的操作系统:与操作系统无关

相关网站:http://www.zkoss.org

中间件

33. JBoss

红帽的JBoss中间件包括各种轻量级、对云计算友好的工具,同时结合、集成和自动化各个企业应用程序和系统。用户包括:橡树岭国家实验室、日产、思科、冠群科技、AMD及其他公司。

支持的操作系统:Linux

相关网站:http://www.redhat.com/en/technologies/jboss-middleware

操作系统

34. 红帽企业版Linux

红帽最知名的产品就是其旗舰Linux发行版,这需要付费订购。据该公司声称,《财富》全球500强公司中超过90%在使用红帽产品。

相关网站:http://www.redhat.com/en/technologies/linux-platforms/enterprise-linux

35. SUSE Linux企业版

这款面向企业的Linux发行版同样备受大企业的追捧,它也需要付费订购。该公司声称,它有13000多个企业用户,包括伦敦证券交易所、SAP、天睿(Teradata)和沃尔格林连锁药店(Walgreens)。

相关网站:https://www.suse.com

36. Ubuntu

Ubuntu提供广受欢迎的Linux发行版,有多个版本:桌面版、服务器版、云版、手机版、平板电脑版和物联网版。声称用户包括亚马逊、IBM、维基百科和英伟达。

相关网站:http://www.ubuntu.com/index_kylin

项目管理

37. Project Libre

这个屡获奖项的项目是微软Project的替代者,下载量已有近200万人次。它有一大批用户,包括IBM、埃森哲、美国能源部、思科、ATI和AMD。

支持的操作系统:Windows、Linux和OS X

相关网站:http://www.projectlibre.org

存储

38. FreeNAS

这款开源网络附加存储(NAS)软件声称,它备受联合国、迪士尼互动媒体集团、路透社和Dr. Phil等用户的“喜爱”。它可以安装到几乎任何硬件上,而TrueNAS提供的预先构建的设备就基于该技术。

支持的操作系统:FressBSD

相关网站:http://www.freenas.org

39. Gluster

Gluster是一种可高度扩展的网络文件系统,适合云计算环境。红帽提供一款基于该技术的收费产品,用户包括卡西欧和Intuit。

支持的操作系统:Linux

相关网站:http://www.gluster.org

40. Lustre

Lustre是另一种可高度扩展的文件系统,旨在支持高性能计算(HPC)环境。一些最早采用它的用户包括美国的几大国家实验室:劳伦斯·利物莫尔国家实验室、桑迪亚国家实验室、橡树岭国家实验室和洛斯阿拉莫斯国家实验室。

支持的操作系统:Linux

相关网站:http://lustre.org

系统管理工具

41. Ansible

Ansible现在归红帽所有,它自称是“一种异常简单的IT自动化引擎,可以使云服务配置、配置管理、应用程序部署、服务内部的编排以及其他许多IT操作实现自动化。”使用它的科技公司包括:思科、瞻博网络、Evernote、推特、威瑞信、GoPro、EA Sports、Atlassian和韦里逊。它既有免费版,也有收费版。

支持的操作系统:Linux

相关网站:http://www.ansibleworks.com

42. Chef

作为另一款自动化工具,Chef支持开发运维方法,同时改善了速度、协作和安全性。拥有免费版和收费版。官方网站上显示用户包括:塔吉特(Target)、诺德斯特龙(Nordstrom)、Facebook、Etsy、IGM、雅虎和彭博社。

支持的操作系统:Windows、Linux和OS X

相关网站:https://www.chef.io/chef/

43. Hudson

Hudson在使用敏捷和开发运维方法的企业当中很流行,它是一种可扩展的持续集成服务器系统,可以监控重复作业的执行。这个项目得到了Eclipse基金会、甲骨文、Atlassian和YourKit的支持。

支持的操作系统:与操作系统无关

相关网站:http://hudson-ci.org

44. Puppet

Puppet号称“使用最广泛的开源IT管理系统”,它包括40多个基础设施管理方面的开源项目。除了开源版本外,它还有一款收费的企业版本。它声称,用户包括25000多家企业,比如迪士尼、沃尔玛、1-800-Flowers.com、Heartland Payment Systems、盖蒂图片社(Getty Images)和Yelp。

支持的操作系统:Windows、Linux、Unix和OS X

相关网站:https://puppetlabs.com/puppet/open-source-projects

版本控制

45. Bazaar

Bazaar由Canonical管理,被许多开源项目所使用,包括Ubuntu、 GNU基金会、Linux基金会、MySQL、Bugzilla、 Debian和Maria DB。它简单易学,支持任何工作流程和工作区间模式,承诺存储效率很高、速度很快。

支持的操作系统:Windows、Linux和OS X

相关网站:http://bazaar.canonical.com/en/

46. Git

这个版本控制系统已变得极受欢迎,这一方面归功于GitHub服务的使用日益广泛。使用它的公司和项目包括:谷歌、Facebook、微软、推特、领英、网飞、Perl、PostgreSQL、安卓、Rails、QT、Gnome和Eclipse。

支持的操作系统:Windows、Linux和OS X

相关网站:http://git-scm.com

47. Mercurial

Mercurial是一种分布式源代码控制管理工具,专注于帮助团队更轻松、更快速地协同工作。用户包括OpenJDK和NetBeans等各大项目。

支持的操作系统:Windows、Linux和OS X

相关网站:https://www.mercurial-scm.org

48. Subversion

这个企业级版本控制系统得到Apache的支持,首次发布于2000年。使用它的企业组织包括Apache软件基金会自己、Hobby Lobby、Mono、Plone和GNU Enterprise。

支持的操作系统:Windows、Linux和OS X

相关网站:http://subversion.apache.org

Web服务器

49. Apache HTTP Server

Apache至今已有20年多的历史,专利是自1996年以来互联网上最受欢迎的Web服务器系统。据W3Techs声称,目前所有网站中55.3%是由Apache支持的。

支持的操作系统:Windows、Linux和OS X

相关网站:http://httpd.apache.org

50. Nginx

Nginx的人气也极旺,它被互联网上所有网站中的大约四分之一所使用。除了俄罗斯许多访问量很大的网站外,用户还包括网飞和WordPress.com。

支持的操作系统:Windows、Linux和OS X

相关网站:http://nginx.org

[General]

# warning, notify, info, verbose

bypass-system = true

skip-proxy = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, localhost, *.local, e.crashlynatics.com

bypass-tun = 0.0.0.0/8, 1.0.0.0/9, 1.160.0.0/11, 1.192.0.0/11, 10.0.0.0/8, 14.0.0.0/11, 14.96.0.0/11, 14.128.0.0/11, 14.192.0.0/11, 27.0.0.0/10, 27.96.0.0/11, 27.128.0.0/9, 36.0.0.0/10, 36.96.0.0/11, 36.128.0.0/9, 39.0.0.0/11, 39.64.0.0/10, 39.128.0.0/10, 42.0.0.0/8, 43.224.0.0/11, 45.64.0.0/10, 47.64.0.0/10, 49.0.0.0/9, 49.128.0.0/11, 49.192.0.0/10, 54.192.0.0/11, 58.0.0.0/9, 58.128.0.0/11, 58.192.0.0/10, 59.32.0.0/11, 59.64.0.0/10, 59.128.0.0/9, 60.0.0.0/10, 60.160.0.0/11, 60.192.0.0/10, 61.0.0.0/10, 61.64.0.0/11, 61.128.0.0/10, 61.224.0.0/11, 100.64.0.0/10, 101.0.0.0/9, 101.128.0.0/11, 101.192.0.0/10, 103.0.0.0/10, 103.192.0.0/10, 106.0.0.0/9, 106.224.0.0/11, 110.0.0.0/7, 112.0.0.0/9, 112.128.0.0/11, 112.192.0.0/10, 113.0.0.0/9, 113.128.0.0/11, 113.192.0.0/10, 114.0.0.0/9, 114.128.0.0/11, 114.192.0.0/10, 115.0.0.0/8, 116.0.0.0/8, 117.0.0.0/9, 117.128.0.0/10, 118.0.0.0/11, 118.64.0.0/10, 118.128.0.0/9, 119.0.0.0/9, 119.128.0.0/10, 119.224.0.0/11, 120.0.0.0/10, 120.64.0.0/11, 120.128.0.0/11, 120.192.0.0/10, 121.0.0.0/9, 121.192.0.0/10, 122.0.0.0/7, 124.0.0.0/8, 125.0.0.0/9, 125.160.0.0/11, 125.192.0.0/10, 127.0.0.0/8, 139.0.0.0/11, 139.128.0.0/9, 140.64.0.0/11, 140.128.0.0/11, 140.192.0.0/10, 144.0.0.0/10, 144.96.0.0/11, 144.224.0.0/11, 150.0.0.0/11, 150.96.0.0/11, 150.128.0.0/11, 150.192.0.0/10, 152.96.0.0/11, 153.0.0.0/10, 153.96.0.0/11, 157.0.0.0/10, 157.96.0.0/11, 157.128.0.0/11, 157.224.0.0/11, 159.224.0.0/11, 161.192.0.0/11, 162.96.0.0/11, 163.0.0.0/10, 163.96.0.0/11, 163.128.0.0/10, 163.192.0.0/11, 166.96.0.0/11, 167.128.0.0/10, 167.192.0.0/11, 168.160.0.0/11, 169.254.0.0/16, 171.0.0.0/9, 171.192.0.0/11, 172.16.0.0/12, 175.0.0.0/9, 175.128.0.0/10, 180.64.0.0/10, 180.128.0.0/9, 182.0.0.0/8, 183.0.0.0/10, 183.64.0.0/11, 183.128.0.0/9, 192.0.0.0/24, 192.0.2.0/24, 192.88.99.0/24, 192.96.0.0/11, 192.160.0.0/11, 198.18.0.0/15, 198.51.100.0/24, 202.0.0.0/9, 202.128.0.0/10, 202.192.0.0/11, 203.0.0.0/9, 203.128.0.0/10, 203.192.0.0/11, 210.0.0.0/10, 210.64.0.0/11, 210.160.0.0/11, 210.192.0.0/11, 211.64.0.0/10, 211.128.0.0/10, 218.0.0.0/9, 218.160.0.0/11, 218.192.0.0/10, 219.64.0.0/11, 219.128.0.0/11, 219.192.0.0/10, 220.96.0.0/11, 220.128.0.0/9, 221.0.0.0/11, 221.96.0.0/11, 221.128.0.0/9, 222.0.0.0/8, 223.0.0.0/11, 223.64.0.0/10, 223.128.0.0/9

dns-server = 114.114.114.114,119.29.29.29,8.8.8.8

[Rule]

# Force some domains which are pollution while resolving DNS

DOMAIN-KEYWORD,google,Proxy,force-remote-dns

DOMAIN-KEYWORD,facebook,Proxy,force-remote-dns

DOMAIN-KEYWORD,youtube,Proxy,force-remote-dns

DOMAIN-KEYWORD,twitter,Proxy,force-remote-dns

DOMAIN-KEYWORD,instagram,Proxy,force-remote-dns

DOMAIN-KEYWORD,gmail,Proxy,force-remote-dns

DOMAIN-SUFFIX,twimg.com,Proxy,force-remote-dns

DOMAIN-SUFFIX,t.co,Proxy,force-remote-dns

DOMAIN-SUFFIX,kenengba.com,Proxy,force-remote-dns

DOMAIN-SUFFIX,akamai.net,Proxy,force-remote-dns

DOMAIN-KEYWORD,bbc,Proxy,force-remote-dns

# Remove these lines below if you don't have trouble accessing Apple resources

DOMAIN-SUFFIX,apple.com,DIRECT

DOMAIN-SUFFIX,mzstatic.com,Proxy

DOMAIN-SUFFIX,itunes.com,Proxy

DOMAIN-SUFFIX,icloud.com,DIRECT

DOMAIN-SUFFIX,lcdn-registration.apple.com,DIRECT

# Block privacy tracker within apps

DOMAIN-KEYWORD,umeng.co,REJECT

DOMAIN-KEYWORD,flurry.co,REJECT

DOMAIN-SUFFIX,mmstat.com,REJECT

DOMAIN-SUFFIX,doubleclick.net,REJECT

DOMAIN,bam.nr-data.net,REJECT

DOMAIN,counter.kingsoft.com,REJECT

DOMAIN,js-agent.newrelic.com,REJECT

DOMAIN,pixel.wp.com,REJECT

DOMAIN,stat.m.jd.com,REJECT

DOMAIN-SUFFIX,51.la,REJECT

DOMAIN-SUFFIX,adjust.com,REJECT

DOMAIN-SUFFIX,cmcore.com,REJECT

DOMAIN-SUFFIX,coremetrics.com,REJECT

DOMAIN-SUFFIX,cnzz.com,REJECT

DOMAIN-SUFFIX,flurry.com,REJECT

DOMAIN-SUFFIX,irs01.com,REJECT

DOMAIN-SUFFIX,madmini.com,REJECT

DOMAIN-SUFFIX,mixpanel.com,REJECT

DOMAIN-SUFFIX,mmstat.com,REJECT

DOMAIN-SUFFIX,wrating.com,REJECT

# AD Block

DOMAIN-KEYWORD,ads,REJECT

DOMAIN-KEYWORD,analytics,REJECT

DOMAIN-KEYWORD,duomeng,REJECT

DOMAIN-KEYWORD,mob.c,REJECT

DOMAIN-KEYWORD,track,REJECT

DOMAIN-KEYWORD,traffic,REJECT

DOMAIN-KEYWORD,adsmogo,REJECT

DOMAIN-SUFFIX,admaster.com.cn,REJECT

DOMAIN-SUFFIX,127.net,REJECT

DOMAIN-SUFFIX,51.la,REJECT

DOMAIN-SUFFIX,acs86.com,REJECT

DOMAIN-SUFFIX,adchina.com,REJECT

DOMAIN-SUFFIX,adcome.cn,REJECT

DOMAIN-SUFFIX,adinfuse.com,REJECT

DOMAIN-SUFFIX,admob.com,REJECT

DOMAIN-SUFFIX,adsage.cn,REJECT

DOMAIN-SUFFIX,adsage.com,REJECT

DOMAIN-SUFFIX,adsmogo.org,REJECT

DOMAIN-SUFFIX,ads.mobclix.com,REJECT

DOMAIN-SUFFIX,adview.cn,REJECT

DOMAIN-SUFFIX,adwhirl.com,REJECT

DOMAIN-SUFFIX,adwo.com,REJECT

DOMAIN-SUFFIX,ad.unimhk.com,REJECT

DOMAIN-SUFFIX,aduu.cn,REJECT

DOMAIN-SUFFIX,advertising.com,REJECT

DOMAIN-SUFFIX,adview.cn,REJECT

DOMAIN-SUFFIX,adwhirl.com,REJECT

DOMAIN-SUFFIX,adwo.com,REJECT

DOMAIN-SUFFIX,adxmi.com,REJECT

DOMAIN-SUFFIX,adzerk.net,REJECT

DOMAIN-SUFFIX,anquan.org,REJECT

DOMAIN-SUFFIX,appads.com,REJECT

DOMAIN-SUFFIX,applifier.com,REJECT

DOMAIN-SUFFIX,appsflyer.com,REJECT

DOMAIN-SUFFIX,baidustatic.com,REJECT

DOMAIN-SUFFIX,baifendian.com,REJECT

DOMAIN-SUFFIX,bam.nr-data.net,REJECT

DOMAIN-SUFFIX,beacon.sina.com.cn,REJECT

DOMAIN-SUFFIX,cnzz.com,REJECT

DOMAIN-SUFFIX,domob.com.cn,REJECT

DOMAIN-SUFFIX,domob.org,REJECT

DOMAIN-SUFFIX,doubleclick.net,REJECT

DOMAIN-SUFFIX,duomeng.cn,REJECT

DOMAIN-SUFFIX,duomeng.net,REJECT

DOMAIN-SUFFIX,duomeng.org,REJECT

DOMAIN-SUFFIX,flurry.com,REJECT

DOMAIN-SUFFIX,googeadsserving.cn,REJECT

DOMAIN-SUFFIX,guomob.com,REJECT

DOMAIN-SUFFIX,inmobi.com,REJECT

DOMAIN-SUFFIX,immob.cn,REJECT

DOMAIN-SUFFIX,intely.cn,REJECT

DOMAIN-SUFFIX,kejet.net,REJECT

DOMAIN-SUFFIX,localytics.com,REJECT

DOMAIN-SUFFIX,mobads.baidu.com,REJECT

DOMAIN-SUFFIX,mobads-logs.baidu.com,REJECT

DOMAIN-SUFFIX,smartadserver.com,REJECT

DOMAIN-SUFFIX,tapjoyads.com,REJECT

DOMAIN-SUFFIX,m.simaba.taobao.com,REJECT

DOMAIN-SUFFIX,mmstat.com,REJECT

DOMAIN-SUFFIX,sax.sina.cn,REJECT

DOMAIN-SUFFIX,tanx.com,REJECT

DOMAIN-SUFFIX,tapjoyads.com,REJECT

DOMAIN-SUFFIX,tiqcdn.com,REJECT

DOMAIN-SUFFIX,umtrack.com,REJECT

DOMAIN-SUFFIX,umeng.co,REJECT

DOMAIN-SUFFIX,umeng.com,REJECT

DOMAIN-SUFFIX,umeng.net,REJECT

DOMAIN-SUFFIX,ushaqi.com,REJECT

DOMAIN-SUFFIX,uyunad.com,REJECT

DOMAIN-SUFFIX,waps.cn,REJECT

DOMAIN-SUFFIX,wiyun.com,REJECT

DOMAIN-SUFFIX,wooboo.com.cn,REJECT

DOMAIN-SUFFIX,wqmobile.com,REJECT

DOMAIN-SUFFIX,x.jd.com,REJECT

DOMAIN-SUFFIX,youmi.net,REJECT

DOMAIN-SUFFIX,zhiziyun.com,REJECT

DOMAIN-SUFFIX,data.vod.itc.cn,REJECT

# Youku/Tudou

DOMAIN-SUFFIX,atm.youku.com,REJECT

DOMAIN,ad.api.3g.youku.com,REJECT

DOMAIN,ad.api.3g.tudou.com,REJECT

# qq

DOMAIN,lives.l.qq.com,REJECT

DOMAIN,monitor.uu.qq.com,REJECT

DOMAIN,pingjs.qq.com,REJECT

DOMAIN,pingma.qq.com,REJECT

DOMAIN,tajs.qq.com,REJECT

DOMAIN-SUFFIX,beacon.qq.com,REJECT

DOMAIN-SUFFIX,pingtcss.qq.com,REJECT

DOMAIN-SUFFIX,report.qq.com,REJECT

DOMAIN,mi.gdt.qq.com,REJECT

DOMAIN,rcgi.video.qq.com,REJECT

# 163

DOMAIN,dsp.youdao.com,REJECT

DOMAIN,g.163.com,REJECT

DOMAIN,temp.163.com,REJECT

DOMAIN-SUFFIX,stat.ws.126.net,REJECT

DOMAIN-SUFFIX,analytics.126.net,DIRECT

DOMAIN-SUFFIX,union.youdao.com,REJECT

# Baidu/iqiyi

DOMAIN,msga.71.am,REJECT

DOMAIN,miaozhen.com,REJECT

DOMAIN,cr-nielsen.com,REJECT

DOMAIN,cbjs.baidu.com,REJECT

DOMAIN,cpro.baidu.com,REJECT

DOMAIN,eclick.baidu.com,REJECT

DOMAIN,hm.baidu.com,REJECT

DOMAIN,mobads-logs.baidu.com,REJECT

DOMAIN,mobads.baidu.com,REJECT

DOMAIN,msg.71.am,REJECT

DOMAIN,mtj.baidu.com,REJECT

DOMAIN,nsclick.baidu.com,REJECT

DOMAIN-SUFFIX,baidustatic.com,REJECT

DOMAIN-SUFFIX,pos.baidu.com,REJECT

DOMAIN-SUFFIX,baidu.com,DIRECT

IP-CIDR,60.210.17.12/24,REJECT

# Alibaba

DOMAIN,acjs.aliyun.com,REJECT

DOMAIN,adash.m.taobao.com,REJECT

DOMAIN-SUFFIX,simaba.taobao.com,REJECT

DOMAIN-SUFFIX,taobao.com,DIRECT

DOMAIN-SUFFIX,alicdn.com,DIRECT

# others

DOMAIN,ads.mopub.com,REJECT

DOMAIN,ark.letv.com,REJECT

DOMAIN,asimgs.pplive.cn,REJECT

DOMAIN,csi.gstatic.com,REJECT

DOMAIN,dsp.youdao.com,REJECT

DOMAIN,iadsdk.apple.com,REJECT

DOMAIN,pagead2.googlesyndication.com,REJECT

IP-CIDR,221.179.140.0/24,REJECT

DOMAIN-SUFFIX,lh1.ggpht.com,REJECT

DOMAIN-SUFFIX,lh2.ggpht.com,REJECT

DOMAIN-SUFFIX,lh3.ggpht.com,REJECT

DOMAIN-SUFFIX,lh4.ggpht.com,REJECT

DOMAIN-SUFFIX,lh5.ggpht.com,REJECT

DOMAIN-SUFFIX,lh6.ggpht.com,REJECT

DOMAIN-SUFFIX,lh7.ggpht.com,REJECT

DOMAIN-SUFFIX,lh8.ggpht.com,REJECT

DOMAIN-SUFFIX,www.panoramio.com,REJECT

# Accelerate most visited sites

DOMAIN-SUFFIX,qq.com,DIRECT

DOMAIN-KEYWORD,alipay,DIRECT

# DOMAIN-KEYWORD,taobao,DIRECT

DOMAIN-KEYWORD,360buy,DIRECT

DOMAIN-SUFFIX,jd.com,DIRECT

DOMAIN-SUFFIX,126.net,DIRECT

DOMAIN-SUFFIX,163.com,DIRECT

DOMAIN-SUFFIX,alicdn.com,DIRECT

DOMAIN-SUFFIX,amap.com,DIRECT

DOMAIN-SUFFIX,bdimg.com,DIRECT

DOMAIN-SUFFIX,bdstatic.com,DIRECT

DOMAIN-SUFFIX,cnbeta.com,DIRECT

DOMAIN-SUFFIX,cnzz.com,DIRECT

DOMAIN-SUFFIX,douban.com,DIRECT

DOMAIN-SUFFIX,gtimg.com,DIRECT

DOMAIN-SUFFIX,hao123.com,DIRECT

DOMAIN-SUFFIX,haosou.com,DIRECT

DOMAIN-SUFFIX,ifeng.com,DIRECT

DOMAIN-SUFFIX,iqiyi.com,DIRECT

DOMAIN-SUFFIX,jd.com,DIRECT

DOMAIN-SUFFIX,netease.com,DIRECT

DOMAIN-SUFFIX,qhimg.com,DIRECT

DOMAIN-SUFFIX,qq.com,DIRECT

DOMAIN-SUFFIX,sogou.com,DIRECT

DOMAIN-SUFFIX,sohu.com,DIRECT

DOMAIN-SUFFIX,soso.com,DIRECT

DOMAIN-SUFFIX,suning.com,DIRECT

DOMAIN-SUFFIX,tmall.com,DIRECT

DOMAIN-SUFFIX,tudou.com,DIRECT

DOMAIN-SUFFIX,weibo.com,DIRECT

DOMAIN-SUFFIX,youku.com,DIRECT

DOMAIN-SUFFIX,xunlei.com,DIRECT

DOMAIN-SUFFIX,zhihu.com,DIRECT

DOMAIN-SUFFIX,ls.apple.com,DIRECT

DOMAIN-SUFFIX,weather.com,DIRECT

DOMAIN-SUFFIX,weibo.cn,DIRECT

DOMAIN-SUFFIX,weibo.com,DIRECT

DOMAIN-SUFFIX,sinaimg.cn,DIRECT

DOMAIN-SUFFIX,mzstatic.com,Proxy

DOMAIN-KEYWORD,aka,Proxy

# Top blocked sites

DOMAIN-SUFFIX,me.com,Proxy

DOMAIN-SUFFIX,amazonaws.com,Proxy

DOMAIN-SUFFIX,android.com,Proxy

DOMAIN-SUFFIX,angularjs.org,Proxy

DOMAIN-SUFFIX,appspot.com,Proxy

DOMAIN-SUFFIX,akamaihd.net,Proxy,force-remote-dns

DOMAIN-SUFFIX,amazon.com,Proxy

DOMAIN-SUFFIX,bit.ly,Proxy

DOMAIN-SUFFIX,bitbucket.org,Proxy

DOMAIN-SUFFIX,blog.com,Proxy

DOMAIN-SUFFIX,blogcdn.com,Proxy

DOMAIN-SUFFIX,blogger.com,Proxy

DOMAIN-SUFFIX,blogsmithmedia.com,Proxy

DOMAIN-SUFFIX,box.net,Proxy

DOMAIN-SUFFIX,bloomberg.com,Proxy

DOMAIN-SUFFIX,chromium.org,Proxy

DOMAIN-SUFFIX,cl.ly,Proxy

DOMAIN-SUFFIX,cloudfront.net,Proxy

DOMAIN-SUFFIX,cloudflare.com,Proxy

DOMAIN-SUFFIX,cocoapods.org,Proxy

DOMAIN-SUFFIX,crashlytics.com,Proxy

DOMAIN-SUFFIX,dribbble.com,Proxy

DOMAIN-SUFFIX,dropbox.com,Proxy

DOMAIN-SUFFIX,dropboxstatic.com,Proxy

DOMAIN-SUFFIX,dropboxusercontent.com,Proxy

DOMAIN-SUFFIX,docker.com,Proxy

DOMAIN-SUFFIX,duckduckgo.com,Proxy

DOMAIN-SUFFIX,digicert.com,Proxy

DOMAIN-SUFFIX,dnsimple.com,Proxy

DOMAIN-SUFFIX,edgecastcdn.net,Proxy

DOMAIN-SUFFIX,engadget.com,Proxy

DOMAIN-SUFFIX,eurekavpt.com,Proxy

DOMAIN-SUFFIX,fb.me,Proxy

DOMAIN-SUFFIX,fbcdn.net,Proxy,force-remote-dns

DOMAIN-SUFFIX,fc2.com,Proxy

DOMAIN-SUFFIX,feedburner.com,Proxy

DOMAIN-SUFFIX,fabric.io,Proxy

DOMAIN-SUFFIX,flickr.com,Proxy

DOMAIN-SUFFIX,fastly.net,Proxy

DOMAIN-SUFFIX,ggpht.com,Proxy

DOMAIN-SUFFIX,github.com,Proxy

DOMAIN-SUFFIX,github.io,Proxy

DOMAIN-SUFFIX,githubusercontent.com,Proxy

DOMAIN-SUFFIX,golang.org,Proxy

DOMAIN-SUFFIX,goo.gl,Proxy

DOMAIN-SUFFIX,gstatic.com,Proxy

DOMAIN-SUFFIX,godaddy.com,Proxy

DOMAIN-SUFFIX,gravatar.com,Proxy

DOMAIN-SUFFIX,imageshack.us,Proxy

DOMAIN-SUFFIX,imgur.com,Proxy

DOMAIN-SUFFIX,jshint.com,Proxy

DOMAIN-SUFFIX,ift.tt,Proxy

DOMAIN-SUFFIX,j.mp,Proxy

DOMAIN-SUFFIX,kat.cr,Proxy

DOMAIN-SUFFIX,linode.com,Proxy

DOMAIN-SUFFIX,linkedin.com,Proxy

DOMAIN-SUFFIX,licdn.com,Proxy

DOMAIN-SUFFIX,lithium.com,Proxy

DOMAIN-SUFFIX,megaupload.com,Proxy

DOMAIN-SUFFIX,mobile01.com,Proxy

DOMAIN-SUFFIX,modmyi.com,Proxy

DOMAIN-SUFFIX,nytimes.com,Proxy

DOMAIN-SUFFIX,name.com,Proxy

DOMAIN-SUFFIX,openvpn.net,Proxy

DOMAIN-SUFFIX,openwrt.org,Proxy

DOMAIN-SUFFIX,ow.ly,Proxy

DOMAIN-SUFFIX,pinboard.in,Proxy

DOMAIN-SUFFIX,ssl-images-amazon.com,Proxy

DOMAIN-SUFFIX,sstatic.net,Proxy

DOMAIN-SUFFIX,stackoverflow.com,Proxy

DOMAIN-SUFFIX,staticflickr.com,Proxy

DOMAIN-SUFFIX,squarespace.com,Proxy

DOMAIN-SUFFIX,symcd.com,Proxy

DOMAIN-SUFFIX,symcb.com,Proxy

DOMAIN-SUFFIX,symauth.com,Proxy

DOMAIN-SUFFIX,ubnt.com,Proxy

DOMAIN-SUFFIX,t.co,Proxy

DOMAIN-SUFFIX,thepiratebay.org,Proxy

DOMAIN-SUFFIX,tumblr.com,Proxy

DOMAIN-SUFFIX,twimg.com,Proxy,force-remote-dns

DOMAIN-SUFFIX,twitch.tv,Proxy

DOMAIN-SUFFIX,twitter.com,Proxy,force-remote-dns

DOMAIN-SUFFIX,wikipedia.com,Proxy

DOMAIN-SUFFIX,wikipedia.org,Proxy

DOMAIN-SUFFIX,wikimedia.org,Proxy

DOMAIN-SUFFIX,wordpress.com,Proxy

DOMAIN-SUFFIX,wsj.com,Proxy

DOMAIN-SUFFIX,wsj.net,Proxy

DOMAIN-SUFFIX,wp.com,Proxy

DOMAIN-SUFFIX,vimeo.com,Proxy

DOMAIN-SUFFIX,youtu.be,Proxy

DOMAIN-SUFFIX,ytimg.com,Proxy

DOMAIN-KEYWORD,blogspot,Proxy

DOMAIN-SUFFIX,tapbots.com,Proxy

DOMAIN-SUFFIX,ykimg.com,DIRECT

DOMAIN-SUFFIX,medium.com,DIRECT

// Email

DOMAIN-SUFFIX,outlook.com,DIRECT

// Telegram

IP-CIDR,91.108.56.0/22,Proxy,no-resolve

IP-CIDR,91.108.4.0/22,Proxy,no-resolve

IP-CIDR,109.239.140.0/24,Proxy,no-resolve

IP-CIDR,149.154.160.0/20,Proxy,no-resolve

// LAN

IP-CIDR,192.168.0.0/16,DIRECT

IP-CIDR,10.0.0.0/8,DIRECT

IP-CIDR,172.16.0.0/12,DIRECT

IP-CIDR,127.0.0.0/8,DIRECT

GEOIP,CN,DIRECT

FINAL,Proxy

一 介绍

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/csshttp://css.example.com

reverse_map http://css.example.com http://cdn.exampe.com/css

map http://cdn.example.com/imghttp://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 未来将在很多场景中替代传统的代理和缓存服务器而成为大家的首选。