gpt4 book ai didi

deployment - 部署两个不同的 Play!同一主机名上的应用程序

转载 作者:行者123 更新时间:2023-12-04 15:27:09 25 4
gpt4 key购买 nike

我已经使用 Play Framework 开发了 2 个应用程序,访问不同的信息,因此将其合并为一个应用程序是没有意义的。

现在我需要在同一个主机名上部署两个应用程序,每个应用程序都在一个单独的子文件夹 (URI) 中,例如:
example.com/payment/
例子.com/cms/

我遇到了路线问题。我配置了一个 nginx 网络服务器作为反向代理。它按预期交付第一页。

但是一旦我点击任何东西,它就不会链接到/cms/Application/index,而是链接回/Application/index(没有/cms/)。

恕我直言,我相信我需要更改我的路由文件,在所有路径上硬编码/cms/,但这似乎是一种糟糕的方法,因为如果我需要在另一个 URI 上部署应用程序,我将需要再次更改路由。

在同一主机名上部署两个应用程序的最佳方法是什么?

----- nginx.conf -----
...
...
...

location /cms {
proxy_pass http://localhost:9001/;

proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /payment {
proxy_pass http://localhost:9002/;

proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

...
...
...
----- nginx.conf -----

最佳答案

如果你看看this thread在 Google Groups 上,您会看到首选方法是上下文路径。

建议使用引导作业按以下方式设置每个应用程序的上下文

Play.ctxPath="/project1";
Router.detectChanges(Play.ctxPath);

所以你的代码将是
Play.ctxPath="/cms";
Router.detectChanges(Play.ctxPath);

等等。

关于deployment - 部署两个不同的 Play!同一主机名上的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4651588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com