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

  • 李永伦

2009 年 10 月 29 日

话题:RubyDevOps语言 & 开发

前不久,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 应用程序表现更加出色。

RubyDevOps语言 & 开发