写点什么

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

2009 年 10 月 29 日

前不久, Peter Cooper Ruby 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 Chameleon Canonical Host Rack::Tidy ImageSizer RefererControl Rack::Codehighlighter Response Time Injector Probably Versioned Server Proxy Casrack the Authentication Rakismet 。活用这些 Rack 中间件可以使你的 Ruby Web 应用程序表现更加出色。

2009 年 10 月 29 日 22:131345

评论

发布
暂无评论
发现更多内容

架构师训练营-第二周学习总结

牛牛

学习 极客大学架构师训练营

打造个人品牌的意义

七镜花园-董一凡

发展 求职

Python中的下划线

shiziwen

Python

接口隔离原则设计缓存Cache工具类

Arvin

因为知道了30+款在线工具,我的工作效率提升500%!

Hollis

最初的梦想

小天同学

写作 成长 梦想

实现自己架构的主要手段

重新来过

依赖倒置原则

Young

架构师训练营 第二周 学习总结

极客

依赖倒置原则

互金从业者X

Week 02- 作业二:学习总结

dean

极客大学架构师训练营

架构师训练营第 0 期 - 第 2 周 - 学习总结

极客大学架构师训练营

架构师训练营——设计模式篇_作业

独孤魂

作业

江帅帅:精通 Spring Boot 系列 06

奈学教育

Spring Boot

架构师训练营第二周感悟

路人

第二周作业:设计原则

Larry

江帅帅:精通 Spring Boot 系列 06

古月木易

Spring Boot

Lesson 2 软件设计原则 心得笔记

edd

第2周作业

sunpengjian

架构师训练营 - 第二周 - 学习总结

Anrika

架构师 极客大学架构师训练营

第二周学习总结

CP

架构师训练营第0期-第2周-命题作业

极客大学架构师训练营

架构师第二周

Tulane

第二周作业

晓雷

如何理解依赖倒置

丿淡忘

极客大学架构师训练营 依赖倒置原则

OOD四大原则

金桔🍊

数据库大咖讲坛活动6月18日墨天轮平台线上举行,阿里腾讯达梦众多数据库大咖齐聚!

墨天轮

数据库 腾讯云 阿里云 数据库设计

架构师课作业-第二周

Tulane

不懂什么是锁?看看这篇你就明白了

cxuan

Java 并发

架构师训练营 - 第二周 - 命题作业

Anrika

架构师 极客大学架构师训练营

第二周作业

CP

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

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