如何在Django,Varnish,Nginx中处理数千个遗留的URL?

我们正在构build一个Django应用程序来replace几乎所有资源都使用自定义URL的遗留系统。 没有任何模式的url。 现在我们需要将约35万个自定义url301redirect到新系统中的正确url。

我们的新系统将使用Django,但在它之前也会有Varnish和Nginx,所以我们可以使用这些工具中的任何一个来解决问题。

在Django中,我想我们可以创build一个非常大的自定义urls.py文件,也可以创build一个中间件,对所有redirect的表进行数据库查询。

或者也许有一种方法可以在Varnish或Nginx中处理,所以这些请求甚至不会碰到Django。

我的问题:处理数千个自定义URLredirect的最高性能方式是什么?

这一切都取决于负载实际上…如果你有很多的请求去旧的URL比可能有用的一些缓存。 但总的来说,我会说在Django中做这件事,将所有的url添加到数据库模型中,并且查询(可以在Django甚至Varnish中缓存结果)应该可以做到。

这些东西在Varnish或Nginx中不是不可能的,但是Django将会更容易连接到数据库,这样我就可以投票了。