我一直在尝试确定我的Web项目是否适合使用PSGI实现,但是在此阶段,我真的不知道它对我的应用程序有什么好处。
我不太了解所有的大惊小怪。在我看来,PSGI似乎是一个框架,在不同的Apache模块之间提供了一个通用接口(interface),使您可以在它们之间移动应用程序。例如,轻松地将您的应用程序从在mod_perl上运行移至fastcgi,并为在这两个选项上运行提供应用程序支持。
是这样,还是我错过了什么?
作为我和团队的一员,我不仅参与开发应用程序,而且还参与服务器的维护和设置工作,但我认为能够在fastcgi,cgi和mod_perl上运行对我们没有任何值(value),只用mod_perl就可以了。
我是否误解了PSGI功能,还是不适合我的项目?
最佳答案
忘了Apache位。这是一种编写应用程序的方式,因此对Web服务器的选择不再那么重要。在$ work下,在升级到Apache2后发现我们的应用程序以非常高的CPU负载运行后,我们切换到了Plack / PSGI-对各种Apache配置进行基准测试,NYTProf'ing无法确定原因,并且使用PSGI和Starman网络服务器的工作效果更好为我们。
现在,所有事情都由我们的PSGI应用程序在一个地方处理(URL重写,静态内容,到期 header 等),而不是Apache配置,因此它是a)Perl,并且b)通过我们的标准/ t /脚本轻松进行了测试。而且,我们的测试现在正在准确测试用户看到的内容,而不仅仅是基本应用本身。
如果您对Apache和mod_perl感到满意,那么这可能与您无关,我相信其他人将能够给出更好的答案,但是对于我们来说,不必再次处理与Apache相关的任何事情,这是一种缓解在自身。测试的简便性以及仅粘贴Data::Dumper并查看发生了什么而不是与ModRewrite和 friend 搏斗的能力都是一个很大的福音。