我知道mod-rewrite可以完成很多积极的事情。但是有没有什么负面的呢?显然,如果你的规则写得不好,你就会有问题。但是,如果你有一个高容量的网站,并且你经常使用mod-rewrite,这会对性能产生重大影响吗?我在谷歌上快速搜索了一些基准,但没有找到太多。
发布于 2008-08-25 18:28:35
我在一些网站上使用过mod_rewrite,这些网站的点击量达到数百万次/月,没有出现任何明显的性能问题。根据您的规则,您必须知道首先应用哪些重写。
使用mod_rewrite很可能比用您当前的语言解析网址更快。
如果你真的担心性能,不要使用.htaccess文件,因为它们很慢。将所有重写规则放入Apache配置中,该配置仅在启动时读取一次。在每次请求时都会重新解析.htaccess文件,并对父文件夹中的每个 .htaccess文件进行。
发布于 2008-08-25 20:20:52
为了回应Ryan上面所说的,与将规则放在配置文件中相比,.htaccess中的规则真的会影响繁忙站点的加载时间。我们最初尝试了这种方式(大约6000万页/月),但并没有持续很长时间,直到我们的服务器开始冒烟:)
将规则放在配置中的明显缺点是,无论何时修改规则,都必须重新加载配置。
最后一个标志("L")对于加快规则的执行速度很有用,一旦您更频繁访问的规则位于顶部并首先进行评估。但是,如果你有一套很长的规则,它会使维护变得更加棘手--有一天早上,我浪费了几个小时,因为我正在编辑我的规则列表,在列表的顶部有一个规则,它比预期的要多!
我们也很难找到相关的基准,并最终制定出了我们自己的内部测试套件。一旦我们整理好规则,正确排序并放入Apache conf中,我们就没有发现太多的负面性能影响。
发布于 2008-08-25 18:32:42
如果您担心apache的性能,如果您有很多重写规则,那么需要考虑的一件事就是使用“跳过”标志。这是一种跳过规则匹配的方法。因此,在匹配上花费的任何开销都被节省了。
不过要小心,我在一个项目中大量使用了“跳过”标志,这使得维护变得很痛苦,因为它取决于在文件中写入内容的顺序。
https://stackoverflow.com/questions/26559
复制相似问题