相关疑难解决方法(0)

Node.js设置便于部署和更新

我们目前正在为一个客户开发一个网站(Apache下的TYPO3),该网站由node.js/socket.io应用程序提供支持,该应用程序为CMS提供的内容提供实时更新.

由于这是我们的第一个node.js项目,因此我在"完美设置"方面没有任何最佳实践,因此我花了一些时间研究部署技术.

我仍然有几个问题可以实现一个良好的设置:

  1. 易于部署客户.这一点非常重要,因为我们的网站将整合到他们的"实时"TYPO3安装中,该安装服务于大量网站,并且运行在不是由客户管理的服务器上,而是另一个(集中式)组织,它支持呼叫和服务器更改.进程缓慢.

  2. 应该很容易更新.如上所述,请求重新启动并进行服务器更改是一个缓慢的过程,因此理想情况下,节点安装应该在收到推送到实时安装的更改时重新启动/更新git.

部署

普遍的共识似乎是使用forever,当涉及到部署节点的应用程序,防止他们逃跑.我已经测试了forever,并且在npm install forever -g(全局)安装时似乎工作正常.这需要外部协助来全局安装在实时环境中,所以我更喜欢从应用程序的node_modules目录运行它,但是我无法创建一个可靠的包装器来执行此操作.

此外,forever工作正常,但必须手动启动.什么是确保它在服务器启动时启动并保持运行的最佳方法?

  • 一个简单的init.d脚本?
  • 写一个看门狗包装?
  • 一个TYPO3调度程序任务,检查forever状态?

快速开发/重新启动更新

我们目前仍处于项目的开发阶段,每次我对node.js应用程序进行更改时,我都会手动重启nodeforever.这有效,但远非理想.有几个较小的npm模块可以检查文件修改并node在检测到的更改时重新启动,例如:

有没有人有这些经验?

更新:你为什么不只使用群集?

集群模块通过提供类似的功能重载机制,但不与节点0.5+工作.替换它的核心群集模块(节点0.6+)没有所有这些功能,只提供群集.而这反过来又不适合socket.io.至少没有使用Redis(这对我们来说是一个问题,因为我们不能强迫客户使用另一个先决条件服务).

-

显然,我正在尝试找到最稳定的解决方案,它将更新重启器与forever将项目交给客户之前结合起来,我真的希望有人能够生成经过验证的技术组合.

deployment updates node.js

56
推荐指数
3
解决办法
2万
查看次数

如何将MEAN.js(Node.js)应用程序部署到生产环境

MEAN.JS堆栈提出了为生产准备应用程序的"grunt构建"任务.不幸的是,缺乏有关后续步骤的信息.实际上,尚不清楚如何将应用程序部署到生产以及如何启动它.

问题#1 除了config/env/production.js的变化之外,项目中必须配置什么?例如,如何使用自定义字体?

问题#2 好的.代码部署到Production(通过Git,rsync等).运行它就足够了

 $NODE_ENV=production node server.js& 
Run Code Online (Sandbox Code Playgroud)

web-deployment node.js mean-stack

20
推荐指数
1
解决办法
2万
查看次数