PSGI:这是什么,有什么大惊小怪的?

| 我一直在尝试确定我的Web项目是否适合使用PSGI实施,但是在此阶段,我真的不知道它对我的应用程序有什么好处。 我不太了解所有的大惊小怪。在我看来,PSGI似乎是一个框架,在不同的Apache模块之间提供了一个通用接口,使您可以在它们之间移动应用程序。例如,轻松地将您的应用程序从在mod_perl上运行移至fastcgi,并为在这两个选项上运行提供应用程序支持。 是这样,还是我错过了什么? 作为我和团队的一员,我不仅参与了应用程序的开发,而且还参与了服务器的维护和设置工作,但我认为能够在fastcgi,cgi和mod_perl上运行对我们没有任何价值。只使用mod_perl就可以了。 我是否误解了PSGI功能,还是不适合我的项目?     
已邀请:
忘了Apache位。这是一种编写应用程序的方式,因此对Web服务器的选择不再那么重要。在$ work下,在升级到Apache2后发现我们的应用程序以非常高的CPU负载运行后,我们切换到Plack / PSGI-对各种Apache配置进行基准测试,NYTProf \'ing无法确定原因,并且使用PSGI和Starman Web服务器的工作量很大对我们更好。 现在,一切都由我们的PSGI应用程序在一个地方处理(URL重写,静态内容,到期标头等),而不是Apache配置,因此这是Perl,并且b)通过我们的标准/ t /脚本轻松进行了测试。此外,我们的测试现在正在准确测试用户看到的内容,而不仅仅是基本应用本身。 如果您对Apache和mod_perl感到满意,那么这可能与您无关,并且我敢肯定其他人将能够提供更好的答案,但是对于我们来说,不必再处理与Apache相关的任何事情了本身就是一种解脱。测试的简便性以及仅粘贴Data :: Dumper并查看正在发生的事情的能力,而不是与ModRewrite和朋友搏斗的能力,是一个很大的福音。     
从最近由chrom撰写的博客文章中借来的,为什么PSGI / Plack很重要(测试),这是什么:   这是从Python的WSGI和Ruby的Rack借来的一个好主意,但使Perlish成为可能。这是Web应用程序开发模式的简单形式化,其中应用程序的入口点是函数引用,出口点是标头信息和响应主体的元组。      而已。那样简单就可以了,这种简单性欺骗了许多想学习它的人。 同上,一个重要的好处是,   对于一个Plack应用程序,您不必部署到Web服务器(甚至在本地)就可以像部署应用程序一样测试您的应用程序……Plack和TWMP(以及Plack :: Test)使用定义明确的Plack模式来创建以前很难的东西变成了非常容易的东西。它们不是第一个,也不是最后一个,但是它们确实展示了Plack的价值。     
开始写了一个答案,经过50行我删除了它。仅仅是因为不可能(简而言之)告诉我们PSGI为什么如此酷。我也是PSGI的新手,但是zilion的事情现在比我的apache / mod_perl时代要容易得多。 我可以给您下一个建议: 阅读Plack出现日历-整天,循序渐进。您必须了解基本原理,洋葱等有什么好处... :) 在CPAN中搜索\“ Plack :: Middleware :: \”-并阅读每行的前几行。这里有很多。 (实际上每个地方应该是一些简短的概述,不幸的是,它不知道任何更快的方法。很高兴知道已经开发了哪些中间件。(例如,您肯定需要Plack :: Middleware ::会话或Plack :: Middleware :: Static等)。 阅读有关Plack :: Builder的信息(使用完日历后已经完成):) 尝试用它编写一些应用程序,会发现Plack就像是第一次性爱-现在您不知道没有它就可以生存。 ps: 如果这里有“ Perl Oscar”之类的名字,一定会提名MyiagavaSan。 :)     

要回复问题请先登录注册