我正在尝试运行同一个 Play 应用程序的两个实例,以便将来透明地升级应用程序。
当我启动第一个实例时,显然一切都很好。当我启动start 9525
命令以在端口 9525 上启动应用程序的第二个实例时,我收到以下错误:
Play server process ID is 8909
This application is already running (Or delete .../RUNNING_PID file)
知道如何解决这个问题吗?
我正在尝试运行同一个 Play 应用程序的两个实例,以便将来透明地升级应用程序。
当我启动第一个实例时,显然一切都很好。当我启动start 9525
命令以在端口 9525 上启动应用程序的第二个实例时,我收到以下错误:
Play server process ID is 8909
This application is already running (Or delete .../RUNNING_PID file)
知道如何解决这个问题吗?
这个 Play 的文档已经描述了使用 Apache 进行“透明升级”。通常,您需要在两个单独的文件夹中启动两个实例
开头:
dist
包instance1
instance1
例如,从所需端口开始,9998
它将是您的日常实例更改后,当您想以透明方式重新部署应用程序时:
dist
并将其解压缩到其他文件夹,即。instance2
9999
instance1
instance2
到instance1
instance1
并停止应用程序instance2
当然,创建将同时执行所有步骤的简单 shell 脚本将是您的好帮手。
提示:
为了避免经常重新部署,特别是当您只需要替换/修改一些公共 和静态内容(如 CSS 或图像)时,您还可以使用 Apache commonvhost
来处理这些资源。只需vhost
为某个文件夹创建一个子域,即。http://static.domain.tld
或使用单独的域更好:http://my-cdn.tld
因此您可以使用如下路径:
<img src="http://static.domain.tld/images/photo.png" alt="" />
代替
<img src="/public/images/photo.png" alt="" />
好处:
最后,根据我的经验,nginx 比 Apache 快。因此,如果在您的情况下 HTTP 服务器的唯一任务是负载平衡 Play 的应用程序,请考虑使用 nginx,它只是更轻。