fun*_*eah 7 javascript architecture shell web-deployment meteor
我设计了一个meteor.js应用程序,它在localhost上工作得很好,甚至在部署到互联网时也是如此.现在我想创建一个注册站点,该站点将为在后端注册的每个客户端启动应用程序的新实例.假设一个meteor.js应用程序和python或javascript用于注册站点,需要采取哪些高级步骤来实现这一点?
我正在寻找一个更正确和完整的答案,采取我的想象不好的版本的形式:
我真的不明白需要采取的高级步骤,所以如果有人可以提供这些步骤,甚至可能提供一些有用的工具或教程,我将非常感激.
我有类似的情况,但最终以完全不同的方式解决它.它现在可以作为Meteor智能包提供:
我们分享的问题是我们想要编写一个流星应用程序,好像只存在一个客户端(或我的情况下的一组客户端),但是它需要处理多组客户端而不需要彼此了解.我正在做以下事情:
正确地做这个需要大量关于Meteor内部的知识,这是我一直在学习的.但是,与尝试同时部署多个流星应用程序相比,这种方法更清洁,资源更少.这意味着您仍然可以编写应用程序,就像只存在一个客户端一样,而不是为多个客户端显式执行此操作.此外,它允许您在可共享的实例之间共享资源(即静态资产,共享状态等)
有关更多详细信息和讨论,请参阅:
首先我要指出的是,我认为旋转同一应用程序的多个实例是一个糟糕的设计选择。如果这是权宜之计,我的建议是:
创建可以轻松部署的存档。(捆绑应用程序,必要时重新安装光纤,重新压缩)。使用脚本创建新实例时,将存档部署(解压缩)到新文件夹。
创建一个初始化脚本模板,并使用forever或daemonize或jesus等在重新启动时启动站点并在正常操作期间保持站点运行。请参阅通过安装 Meteor 将 Meteor 部署到 VM或如何将 Node.js 服务器作为守护进程启动?举些例子。部署新实例时,使用新值(即端口号、数据库名称、文件夹)填充模板。将填写的模板复制到 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 配置添加新记录?