我们有一个基于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服务器尽可能少地(尽可能快地)工作,并将所有其他工作委派给应用程序服务器(中间件)吗?**
PSGI的好处是部署灵活性。只要你在mod_rewrite中有规则,你就会被Apache卡住,因此,你就无法充分利用PSGI。
然而,只要你对Apache感到满意,我看不出有强烈的动机重写所有规则。如果mod_rewrite让你头疼,那就去做吧。
还可以考虑使用Router::Simple或Path::Router 之类的东西将您的路由逻辑放入主应用程序代码中
顺便说一句,除非你真的很喜欢FastCGI,否则可能没有理由使用Plack::Handler::FCGI。保留Apache作为您的反向代理,您的应用程序在Starlet或其他Plack web服务器中运行。