Routes.rb vs rack-rewrite vs nginx / apache重写规则

时间:2011-04-22 15:26:20

标签: ruby-on-rails performance mod-rewrite url-rewriting

我从以前的应用程序版本中为遗留URL提供了许多重写规则。 我看到三个选择:

  1. 只需在路线文件(config / routes.rb)
  2. 中添加“匹配”行
  3. 使用rack-rewrite
  4. 创建Nginx / Apache重写规则(在我的情况下为Nginx)
  5. 我认为3的性能优于2,性能优于1。

    我的问题:

    • 这是真的吗?
    • 如果是这样,重要的是多少?
    • 我可能没有考虑其他权衡吗?
    • 除了这三个以外还有其他选择吗?

1 个答案:

答案 0 :(得分:8)

  1. 是的,您的表现顺序正确。
  2. 取决于您的网站,流量,这些重写规则的点击次数 - 很可能性能比可维护性要重要得多。
  3. 可维护性 - 使用您所知道的以及您的开发人员所知道的内容。 Apache的重写语法很容易出错,而且往往是一次写入 - 永不读取。 Nginx是相当不错的,但仍然是一个新的DSL供你和你的开发人员学习。 rack-rewrite是Apache的反面,它实际上很难犯错,因为它很简单(我认为它比routes.rb更简单)
  4. 无价值评估。