如果我的Web框架想要支持PSGI,是否需要将mod_rewrite规则转换为Plack :: Middleware :: Rewrite规则?

时间:2013-08-24 16:19:46

标签: perl plack psgi

我们有一个基于FastCGI的Web框架,我们在内部用于一些关键任务应用程序。因此,转向现有的PSGI投诉框架并不是很实际。我们已经成功地将我们的框架从普通的旧CGI.pm转移到了Plack处理程序。

但是,在Apache的配置文件中,有很多以mod_rewrite规则形式的路由逻辑。如果我们在Apache中使用Plack :: Handler :: FCGI通过反向代理部署使用我们新的PSGI兼容框架的应用程序,我想mod_rewrite规则可以继续在那里工作,并进行一些调整。 (计划这样做,但尚未尝试过)。

然而,阅读Plack :: Middleware :: Rewrite作为mod_rewrite的替代品引起了我的兴趣。

我是否需要将mod_rewrite规则转换为Plack :: Middleware :: Rewrite规则并将所有应用程序逻辑完全移至Perl以获得PSGI的全部好处?

我认为答案是肯定的,但我没有部署PSGI应用程序的经验,所以如果有人可以分享他们的经验以确保我走上正确的道路,我会很感激。

子问题 PSGI的想法是关于让Web服务器尽可能少(并且尽可能快)地执行并将所有其他内容委托给应用程序服务器(中间件)吗?**

1 个答案:

答案 0 :(得分:3)

PSGI的好处是部署灵活性。只要你在mod_rewrite中有规则,你就会被Apache困住,因此无法获得PSGI的全部好处。

但是,只要您对Apache感到满意,我就没有看到重写所有规则的强烈动机。如果mod_rewrite让你头疼,那就去吧。

另外,请考虑将您的路由逻辑放在主应用代码中,例如Router::SimplePath::Router

顺便说一句,除非你真的喜欢FastCGI,否则没有理由使用Plack :: Handler :: FCGI。将Apache保留为您的反向代理,您的应用程序将在Starlet或其他Plack Web服务器中运行。