我知道mod-rewrite实现了很多积极的事情。 但有没有负面的? 显然,如果你的规则写得不好,你就会遇到问题。 但是,如果你有一个高容量的网站,并且你不断使用mod-rewrite,它会对性能产生重大影响吗? 我在Google上快速搜索了一些基准测试,并没有找到太多。

===============>>#1 票数:37 已采纳

我已经在每月获得数百万次/点击数的网站上使用了mod_rewrite而没有任何重大的性能问题。 您必须知道根据您的规则首先应用哪些重写。

使用mod_rewrite很可能比使用当前语言解析URL更快。

如果您真的担心性能,请不要使用.htaccess文件,这些文件很慢。 将所有重写规则放在Apache配置中,该配置仅在启动时读取一次。 每个请求都会重新解析.htaccess文件,以及父文件夹中的每个 .htaccess文件。

===============>>#2 票数:7

为了回应Ryan上面所说的内容,与配置文件中的规则相比, .htaccess规则确实会损害繁忙站点上的加载时间。 我们最初尝试过这个(约6000万页/月),但直到我们的服务器开始吸烟才持续很长时间:)

在配置中使用规则的明显缺点是,每当修改规则时都必须重新加载配置。

最后一个标志(“L”)对于加快规则的执行非常有用,一旦您更频繁访问的规则位于顶部并且首先进行评估。 如果你有一套很长的规则,它可以使维护变得更加棘手 - 我在一天早上浪费了几个非常令人沮丧的时间,因为我在我的规则列表中间进行编辑并且有一个在顶部被捕获超过意!

我们也很难找到相关的基准测试,并最终制定了我们自己的内部测试套件。 一旦我们将规则整理出来,正确排序并进入我们的Apache conf,我们就没有发现太多负面的性能影响。

===============>>#3 票数:3

如果你担心apache的性能,如果你有很多重写规则,要考虑的一件事就是使用“skip”标志。 这是一种跳过规则匹配的方法。 因此,保存了用于匹配的任何开销。

但要小心,我正在使用“跳过”标志的项目很多,并且它使维护变得痛苦,因为它取决于文件中写入内容的顺序。

  ask by gregh translate from so

未解决问题?本站智能推荐:

2回复

使用apache mod_rewrite时重写规则顺序对性能的影响

虽然我已经读过mod_rewrite处理你提供的各种重写规则的“有时不明显的方式”(例如:首先阅读RewriteRule,然后返回检查RewriteCond),但是: 就表现而言,规则的顺序是否重要? apache会以“自上而下”的方式处理它们吗? 意味着最常用的规则在技术上应该尽
2回复

.htaccess mod_rewrite性能

我在SOF上搜索了很多关于.htaccess和mod_rewrite的内容,我希望表现明智哪一个更快: 因为第一个只接受字母和数字,它是否会让它更快执行?
1回复

在所有网站图片上进行Mod_rewrite

我正在设计一个图像存储库。 我想从图像html链接解耦文件名。 例如: 文件系统中的images/items/12543.jpg称为images/items/12543.jpg HTML是 src="images/car.jpg" /> 是否有人
1回复

mod_rewrite,RewriteMap,RewriteLock和threading

我将RewriteMap配置为使用外部应用程序重写入站URL。 效果很好。 我现在关心的是线程和性能。 有没有办法让外部应用程序处理多个请求? 我们现在正在使用RewriteLock,因此一次只有一个线程向外部应用程序发送请求,但这似乎是一个性能瓶颈。 任何指导将不胜感激。 谢谢
1回复

Apache mod_rewrite Rewriterule没有正则表达式?

我一直在测试正则表达式,并得出结论,这是有史以来发明的最有效的性能杀手。 我的问题是我的网站需要更好的网址,唯一正确的方法似乎是Apaches Rewriterule,但它需要与正则表达式一起使用,我想避免这种情况。 任何人都知道是否可以避免使用正则表达式,如果是,那么该如何做?
1回复

启用Mod_rewrite引擎会减慢我专用的野兽爬行的速度

我一直在对购买的脚本中的.htaccess问题进行故障排除,这使我产生了很多冲突。 如果启用了重写功能并使用Blitz.io进行1-250测试,则在所有请求超时之前,大约有5位用户。 发生此事件时,我看不到服务器资源争用,但有时我确实看到来自Apache的事件,该事件已用尽了最大的连接数。
4回复

在.htaccess中重写规则是否会影响网站的速度?

我计划在主目录中添加最多10个.htaccess重写网址代码会影响我网站的执行(网站加载时间)吗? 我当前的.htaccess文件是
1回复

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

我对以前的应用程序版本中的遗留URL有几十条重写规则。 我看到三个选择: 只需在路由文件中添加“匹配”行(config / routes.rb) 使用机架重写 创建Nginx / Apache重写规则(在我的例子中是Nginx) 我认为3的性能优于2,性能优于
5回复

可以使用非常长的.htaccess文件吗?

我向网站上的人提供了URL,实际上指向的是丑陋的东西(在同一网站上)。 http://www.mydomain.com/cool-URL 实际上指向 http://www.mydomain.com/boring.php?id=478547&sessid=34734asdf7
1回复

将所有可能的域和子域永久重定向到https,而不使用www(https://example.com)

我的网站流量很高,因此性能至关重要。 我正在使用apache和ubuntu。 我正在尝试将所有可能的域可能性都重定向到https://example.com包括所有子域( https://test.example.com )。 这是我目前拥有的: 我觉得上面的代码正在做额外