如何在同一个 nginx 服务器上 运行 多个 perl Dancer2 应用程序

How to run multiple perl Dancer2 apps in same nginx server

我认为我可以使用 nginx 中的位置管理多个应用程序。

但似乎我不能 运行 多个 dancer2 应用程序在同一服务器上使用不同的端口 (比如 localhost:3000,localhost:4000)

无论如何,我把它放在这里是希望专家们能给我一些启发。

当您有多个 Dancer2 应用程序时,您可以使用 Plack::App::URLMap or the wrapper syntax for it available in Plack::Builder:

将它们组合在一起
use MyApp::Main;
use MyApp::Admin;

builder {
    mount '/'      => MyApp::Main->to_app;
    mount '/admin' => MyApp::Admin->to_app;
};

安装的效果是这些应用程序将完全独立并且Plack::Builder将确保只有适当的应用程序处理给定的请求。

来源:http://advent.perldancer.org/2014/9

But it seems like I cannot run multiple dancer2 apps in same server with different ports (like localhost:3000, localhost:4000).

这不是真的。 Dancer(显然还有 Dancer2)应用程序对它们正在监听的端口一无所知。这全部由您的部署环境处理。例如,如果您有两个名为 app1.psgiapp2.psgi 的 Dancer 应用程序,并且您使用 plackup 启动它们,那么您可以使用 运行 在不同的端口上获取它们 -p 命令行选项。

$ plackup -p 3000 app1.psgi
$ plackup -p 4000 app2.psgi