有没有人有一些关于在Apacheconfiguration大量(超过100)redirect的影响统计?

我们最近把博客转移到了一个新的网站上,并且必须设置一些从旧文章到新位置的redirect。

现在的问题是,我们发现在他的旧网站上他有各种不同的url组合,因为他正在testing各种各样的SEO方法。

我的问题是,我已经把他们中的很多人组合在一起,并获得了很大一部分的网站,但有这么多的一次性types的url是疯了。 我不能在所有这些上使用通配符和正则expression式。

我不介意把它们作为个人redirect到我的Apacheconfiguration文件中,但是我担心有100多个这样的服务器可能会导致服务器崩溃 – 有没有人有这方面的证据或者遇到过这个问题?

这可能或可能不会帮助你。 在我工作的地方,我们有大量注册在通常redirect到主要顶级域名(通常是com)的第二级顶级域名(例如,networking,组织,各种顶级域名)的域名。 最终的结果是大约1,000个URL必须在其他地方redirect。

我们采取的方法是使用Apache的mod_rewrite来生成redirect,configuration存储在key:value表(mod_rewrite可以读取)中。 基本configuration看起来像这样:

RewriteEngine on RewriteMap redir dbm=db:/path/to/redir-map.db # store redir url in a var, or "XX" if not found RewriteRule ^ - [E=url:${redir:%{REQUEST_URI}|XX}] # if the redir url is found, do the redirect RewriteCond %{ENV:url} !^XX$ RewriteRule ^.*$ %{ENV:url}? [R=permanent,L] 

您的redirect地图将是一个纯文本文件,如下所示:

 # old uri new url /some/path/funny-story http://newsite.blogtastic.com/funny-story /some/path/my-birthday http://newsite.blogtastic.com/birthday-2009 

DB文件是用以下程序(包含在Apache中)构build的:

 httxt2dbm -v -f DB -i redir-map.txt -o redir-map-db 

我喜欢这个方法,因为它将我们的Apacheconfiguration保持在最低限度,并且在我们需要添加/更改/删除redirect(我们只是重build数据库文件)时不需要重新加载configuration。

在我们的情况下,我们每天大约需要redirect35000次点击。 该服务器是在ESX下运行的CentOS 5.2虚拟机,单个3 GHz Xeon暴露于此虚拟机。 系统负载通常低于0.1,CPU使用率几乎为零。 我们使用额外的CustomLog指令loggingredirect,这个指令占服务器磁盘I / O的大部分(本身仍然很低)。 这个服务器也托pipe着其他的网站,所以redirect的影响实际上比这些数字显示的要低一些。

我不能说这种方法与使用Redirect指令而不是Rewrite相比如何,但我无法想象它们的performance如何。 我不认为添加100多个redirect对你的服务器会有明显的影响。