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

Joa*_*kim 18 perl fastcgi mod-perl2 psgi

我一直试图决定我的Web项目是否是使用PSGI实现的候选者,但我真的没有看到它在这个阶段对我的应用程序有什么好处.

我真的不明白所有的大惊小怪.对我来说,PSGI似乎是一个框架,它提供了不同Apache模块之间的通用接口,允许您在它们之间移动应用程序.例如,轻松地将您的应用程序从mod_perl上运行到fastcgi,并提供运行这两个选项的应用程序支持.

是的,还是我错过了什么?

因为我和团队不仅是开发应用程序的一部分,而且几乎都是服务器的维护和设置,我没有看到能够在fastcgi,cgi和mod_perl上运行的价值,我们做只需mod_perl即可.

我误解了PSGI功能,还是不适合我的项目?

plu*_*lus 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和朋友搏斗的能力,是一个很大的好处.


Gre*_*con 17

借用最近的chromatic博客文章,为什么PSGI/Plack Matters(测试),这就是它的含义:

借用Python的WSGI和Ruby的Rack是一个好主意,但是制作了Perlish; 它是Web应用程序开发模式的简单形式化,其中应用程序的入口点是函数引用,退出点是标题信息和响应主体的元组.

而已.这很简单,而且简单性会欺骗很多想要学习它的人.

一个重要的好处是,同上.,

给定一个Plack应用程序,您不必部署到Web服务器 - 甚至是本地 - 来测试您的应用程序,就好像它已经部署 ... Plack和TWMP(以及Plack :: Test)使用定义良好的Plack模式来制作某些东西以前很难做到非常简单.他们不是第一个,他们不会是最后一个,但他们确实证明了普拉克的价值.


jm6*_*666 7

开始写了一个答案,50行后我删除了它.仅仅因为不可能告诉(简而言之)为什么PSGI非常酷.我也是PSGI的新手,但是现在zilion的东西比我之前的apache/mod_perl时代要容易得多.

我可以给你下一个建议:

  1. 阅读Plack来临日历 - 所有日子,一步一步.你必须了解基本的哲学,洋葱等什么是好的... :)
  2. 搜索CPAN的"Plack :: Middleware ::" - 并读取每个中的前几行.这里有很多.(真的应该在某个地方对每一个进行一些简短的概述,遗憾的是不知道任何更快的方法.简单地知道,已经开发了哪些中间件.(例如,你肯定需要Plack :: Middleware :: Session ,或Plack :: Middleware :: Static等......)
  3. 阅读Plack :: Builder(已经完成,当你完成了降临节日历):)
  4. 尝试用它写一些应用程序,并发现Plack就像第一次性别 - 现在你不明白你可以没有它.

ps:如果在这里像"Perl Oscar",肯定会提名MyiagavaSan.:)