BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 李永伦 关注 0 他的粉丝 发布于 2009年10月31日. 估计阅读时间: 4 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT