InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

21款强化Ruby Web应用程序的Rack中间件

作者 李永伦 发布于 2009年10月29日

领域
运维 & 基础架构,
语言 & 开发
主题
应用服务器 ,
Ruby ,
动态语言 ,
Java ,
语言 ,
编程 ,
Web服务器 ,
Rake

前不久,Peter CooperRuby Inside发表了一篇文章,介绍了21款能使你的Ruby Web应用程序变得更加强大的Rack中间件。Peter在文中介绍说:

如果用过Ruby开发Web应用程序,你可能已经知道Rack了,一个位于Ruby应用程序和HTTP Web服务器之间的接口。所有主要的Ruby框架和服务器设备现在都用它了,包括Rails。Rack中间件就是那些操作在你的Ruby应用程序和HTTP服务器之间来回流动的数据的代码。你可以使用中间件拦截请求、改变数据等。

下面挑选10个比较有意思的简单介绍一下:

  • Rack::Rewrite允许你定义和应用URL重写规则,它支持HTTP 301和302重定向,你甚至可以通过它把现有URL的Google Ranking转到新URL上。
  • 虽然Zombie Shotgun未必是最好的防范僵尸攻击的工具,但也足以成为你的必备工具之一了,正如Peter所说的:“我敢说它应该排在几乎任何有用中间件的前面。”
  • 调试Web应用程序并非易事,如果网站能够配合工具提供丰富的调试信息,那将会事半功倍,Firebug Logger使你可以添加能在Firebug里使用的日志信息,而且使用起来也非常简单。
  • 如果你的Web应用程序里有某些地址只能通过HTTPS来访问,为了避免用户手动把HTTPS改成HTTP仍然可以访问,你可以使用EnforceSSL强制这些路径必须通过HTTPS来访问。
  • 关于InlineUploader,最好的介绍莫过于官方的描述了:“想要GMail处理邮件附件的方式的上传文件功能?InlineUploader可以帮得了你!InlineUploader提供通用文件上传端点以及把上传的文件作为后续提交表单数据的附件的途径。”
  • 如果你想在自己的网站上使用Google Analytics,但有不想手动在每个页面上粘贴Google Analytics跟踪代码,那么你可以使用Rack::GoogleAnalytics,它会自动帮你往你的HTML网页插入Google Analytics跟踪代码。
  • 你可能已经听说过有人抵制IE 6,你甚至已经采取行动,阻止用户通过IE 6访问你的网站,如果这样,那么Rack::NoIE将会助你一臂之力,这个名字可能会让人产生误会,实际上,它是用于限制IE 6(而不是IE)访问你的网页的,你可以设置当用户通过IE 6访问你的网页时将被重定向到特定网页或者地址。
  • 你可能曾经为某些恶意请求发愁,你甚至想把某些恶意IP加入黑名单,恨不得他们永远远离你的网站,若果这样,那么BanHammer将会助你一臂之力,它使你可以把某些IP地址或者网段加入黑名单,从而限制它们的访问,支持IPv4和IPv6。
  • Rack::Proxy,顾名思义,它提供了代理服务器的功能,允许你把特定请求路由到特定的远程服务器,从这个点出发,你会发现可以用它来做很多事情,正如Peter所说的:“这是其中一个可以在一些重要的扩展上大展拳脚的中间件。”
  • Rack::ChromeFrame不是Chrome Frame,它只是往输出的HTML插入两段代码,而这些代码也只会对IE用户产生作用,如果用户的机器上安装了Chrome Frame,代码将会启用它,否则就在网页末尾提示用户下载安装。

其它的还有Karma ChameleonCanonical HostRack::TidyImageSizerRefererControlRack::CodehighlighterResponse Time InjectorProbably VersionedServer ProxyCasrack the AuthenticationRakismet。活用这些Rack中间件可以使你的Ruby Web应用程序表现更加出色。

李永伦 李永伦,从02年开始关注.NET,读过4年工商管理,任过3届微软MVP,最近迷上Windows Phone和Ruby。