我正在寻找一个更正确和完整的答案,采取我想象不到的版本的形式:
>使用类似node或python的东西来调用可能或不可能以sudo身份运行的shell脚本
>该脚本可能会创建一个新文件夹来保存特定于实例的内容(如客户端文件,配置和/或实例数据库).
>脚本或python代码会将应用程序的实例部署到该文件夹和特定端口
> Python可能会将配置信息添加到像Pound这样的工具,以将子域转发到端口
>其他事情……!?
我真的不明白这里需要采取的高级步骤,所以如果有人可以提供这些步骤,甚至可能提供一些有用的工具或教程,我将非常感激.
解决方法
>创建可以轻松部署的存档. (捆绑应用程序,必要时重新安装光纤,重新压缩).使用脚本创建新实例时,将存档部署(解压缩)到新文件夹.
>创建init脚本的模板并使用forever或daemonize或jesus等在重新启动时启动站点并在正常操作期间保持站点正常运行.有关示例,请参见Meteor deploying to a VM by installing meteor或How does one start a node.js server as a daemon process?.部署新实例时,使用新值(即端口号,数据库名称,文件夹)填充模板.将填写的模板复制到init.d并链接到运行级别.或者,在init.d中创建一个脚本,执行其他脚本以启动站点.
>每个实例都应该监听自己的端口,因此您需要一个反向代理.更改配置时,AFAIK,Apache和Nginx需要重新启动,因此您可能希望查看Hipache https://github.com/dotcloud/hipache.Hipache使用redis存储配置信息.添加新实例需要向redis添加密钥.有一个实验性的Hipache端口,它将功能带到了Nginx https://github.com/samalba/hipache-nginx
那么DNS更新呢?创建新实例后,是否需要在DNS配置中添加新记录?