我正在尝试运行同一个Play应用程序的两个实例,以便将来透明地升级应用程序。
当我启动第一个实例时,一切都很顺利。当我启动start 9525
命令以在端口9525上启动应用程序的第二个实例时,我收到以下错误:
Play server process ID is 8909
This application is already running (Or delete .../RUNNING_PID file)
任何想法如何解决这个问题?
答案 0 :(得分:6)
This Play's doc已经描述了使用Apache进行“透明升级”。通常,您需要在两个单独的文件夹
中启动两个实例一开始:
dist
个包
instance1
instance1
以获取示例9998
它将是您的每天实例更改后,当您想要透视地重新部署应用程序时:
dist
并将其解压缩到其他文件夹即。 instance2
9999
instance1
instance2
复制到instance1
instance1
中启动应用程序并停止instance2
当然,创建简单的shell脚本会立即执行所有步骤,这对您来说非常有帮助。
提示强>
为避免经常重新部署,尤其是当您只需要替换/修改某些公共和静态内容(如CSS或图片)时,您也可以使用Apache common { {1}}用于处理这些资源。只需为某个文件夹创建vhost
作为子域即ie。 vhost
或更好地使用单独的域:http://static.domain.tld
,因此您可以使用如下路径:
http://my-cdn.tld
而不是
<img src="http://static.domain.tld/images/photo.png" alt="" />
好处:
最后,根据我的经验,nginx比Apache快。因此,如果您的案例中只有HTTP服务器的任务是对Play的应用程序进行负载平衡,那么考虑使用nginx它只是更轻。