我正在尝试使用Plack/Starman部署我的小型Catalyst Web应用程序.所有文档似乎都表明我想将它与nginx结合使用.这有什么好处?为什么不直接在Star 80上使用Starman?
短版:
我应该使用什么标准来评估Perl"app server"(mod_perl替换)的可能候选者?
我们正在寻找某种框架,它允许重复执行各种Perl程序(作为服务),而无需支付以下费用:
每次执行时重新启动perl解释器一次
每次执行一次加载/编译Perl模块
(这两个都是运行mod_perl提供的好处)
笔记:
我们并不太关心mod_perl提供的任何额外好处,例如深度Apache集成.
这将是一个纯粹的应用程序服务器,这意味着不需要任何特定于Web的功能(如果应用程序服务器提供它,则不会出现问题,只是不需要).
我们当然会考虑明显的标准(原始速度,生产就绪稳定性,主动开发,在我们关心的操作系统上运行的能力).我感兴趣的是我们可能希望从这样的框架/服务器中获得的不那么微不足道和微妙的东西.
背景:
在$ work,决定他们想要替换当前情况的权力(简单的webapps在Embperl中开发并通过Apache/mod_perl部署).
决定使用(本土)MVC系统,该系统将具有View的Java Spring前端; 并且Controller会将后端服务请求分解为执行模型职责的每个应用程序服务(不要挂在这个细节上 - 它与主要问题不太相关).
后端服务的一个选项是Perl,因此我们可以利用我们现有的所有Perl IP(库,webapp后端代码),而不必将其100%移植到Java.
总结一下:
| View | Model/app | Model loaded/executed by: |
================================================================================
OLD | Empberl | Model.pm | mod_perl has Model.pm loaded, called from view.epl |
NEW | Java | Model.pm | perl generic_model.pl -model Model (does "require") |
================================================================================
Run Code Online (Sandbox Code Playgroud)
现在,那些在一段时间内进行Perl Web开发的人会立即注意到新设计中最明显的问题:
| Perl interpreter starts | Perl modules are loaded and compiled |
=======================================================================
OLD | Once per …Run Code Online (Sandbox Code Playgroud)