我一直在努力决定我的网络项目是否是使用PSGI实现的候选者,但我真的没有看到它在这个阶段对我的应用程序有什么好处。
我真的不明白所有的大惊小怪。对我来说,PSGI似乎是一个框架,它提供了不同Apache模块之间的通用接口,允许您在它们之间移动应用程序。例如,轻松地将您的应用程序从mod_perl上运行到fastcgi,并提供应用程序支持以在两个选项上运行。
这是对的,还是我错过了什么?
正如我和团队一样,我不仅开发应用程序,而且几乎都做维护和设置服务器,我没有看到能够在fastcgi,cgi和mod_perl上运行的价值,我们只用mod_perl做得很好。
我是否误解了PSGI功能,还是不适合我的项目?
答案 0 :(得分:25)
忘掉Apache位。这是编写应用程序的一种方式,因此Web服务器的选择变得不那么重要了。在$ work工作之后,我们在升级到Apache2后发现我们的应用程序以非常高的CPU负载运行时切换到Plack / PSGI - 对各种Apache配置进行基准测试并且NYTProfing无法确定原因,并且使用PSGI和Starman网络服务器的效果要好得多对我们来说。
现在我们的PSGI应用程序(URL重写,静态内容,到期标题等)在一个地方处理所有内容而不是Apache配置,所以它是a)Perl,和b)通过我们的标准/ t /轻松测试脚本。此外,我们的测试现在正在测试用户看到的内容,而不仅仅是基本的应用程序本身。
如果您对Apache和mod_perl感到满意,那么它可能与您无关,我相信其他人将能够提供更好的答案,但对于我们而言,不必再处理与Apache相关的任何事情。这样的解脱本身。测试的简易性,以及只是坚持使用Data :: Dumper,看看发生了什么而不是与ModRewrite和朋友搏斗的能力,是一个很大的好处。
答案 1 :(得分:17)
借用chromatic,Why PSGI/Plack Matters (Testing)最近的博客文章借用,这就是它:
借用Python的WSGI和Ruby的Rack是一个好主意但是制作了Perlish;它是Web应用程序开发模式的简单形式化,其中应用程序的入口点是函数引用,退出点是标题信息和响应主体的元组。
就是这样。这很简单,而且这种简单性会欺骗很多想要学习它的人。
一个重要的好处是,同上。,
鉴于Plack应用程序,您不必部署到Web服务器 - 甚至是本地 - 来测试您的应用程序,就像它已部署一样 ... Plack和TWMP(和{ {3}})使用定义明确的Plack模式来制作以前难以实现的非常简单的东西。他们不是第一个,他们不会是最后一个,但他们确实证明了普拉克的价值。
答案 2 :(得分:7)
开始写了一个答案,50行之后我删除了它。仅仅因为不可能告诉(简而言之)为什么PSGI非常酷。我也是PSGI的新手,但是现在zilion的东西在我的apache / mod_perl时代就像以前一样容易。
我可以给你下一个建议:
PS: 如果在这里像“Perl Oscar”,肯定会提名MyiagavaSan。 :)