我有一个这样的问题 - 在 PSGI/Plack 应用程序中分叉的正确方法是什么?
一方面我知道 PSGI 应用程序是“后端不可知的”,所以它可以使用不同的方法运行 - FastCGI、CGI 等但另一方面我知道例如在 FastCGI 应用程序中我们需要做一些操作FCGI::Request 对象在 fork 之前/之后。
那么我必须做什么?
- 只是叉子:)
- 做一些魔术操作和分叉(什么操作?)
- 重写应用程序架构 => 将所有繁重的操作移至外部守护进程。
由于 PSGI 是一种规范,因此您可以在所有这些情况下使用它。如果您可以在 mod_perl 中运行 PSGI 应用程序,使用 FastCGI 服务器作为 CGI,或者您可以在本地 PSGI 服务器(如 plack 等)上运行。
你如何开始他们显然取决于你选择哪一个。Mod_perl 由它的 apache 进程决定,CGI 脚本不能从外部启动。但是 FastCGI 和像 Starman 这样的独立 PSGI 服务器往往由反向代理处理,或者手动启动和停止。将它留给代理,PSGI 服务器的配置是最简单的,尽管有时您希望能够独立于代理控制外部进程。