Articles of 部署

Forever.js启动并重新启动多个脚本

我的网站应用程序有3个主要node.js组件:网站,饲料和工作。 要开始这些我永远使用: //forever.js var forever = require('forever'); function start(name){ forever.start( ['coffee', name + '.coffee'], { /* log options */ } ) }; start('website'); start('feeds'); start('jobs'); 我首先注意到的是,如果我运行脚本,它不会运行它作为守护进程。 (这很可能是正常的) node forever.js 所以我接下来做的是永远运行forever.js脚本。 我不知道这是否正确,也有forever.startDaemon所以不知道我应该使用哪一个。 forever start forever.js 这工作,但问题是,我想重新启动我的应用程序的新版本发布时的所有进程。 我使用git的post-receive hook来第一次运行forever.js,但是如果我在每个post-recieve上执行这个操作,它每次只会产生3个进程。 所以我想我需要一种方法来重新启动3个进程,如果他们已经在运行。 我想用forever.list做到这一点,但文档只说: forever.list (format, callback) Returns a list of metadata objects about each process that is being run […]

如何部署分离的前端和后端?

我正在开发一个新的项目与反应/快递作为前端和回环作为后端api。 我在不同的端口在我的开发环境中将它们分开。 我应该如何在生产中部署它们? 1)在同一台服务器上托pipe – 用不同的子域分隔后端? 2)托pipe在2个不同的服务器上 – 似乎不可能使用相同的域名

如何将nodejs应用程序部署到谷歌云?

我试图部署一个nodejs应用程序到谷歌云,我已经发布了几个SO问题,我已经得到的错误,以及如何解决它们。 让我说明我的努力… 问题1)我试着按照教程 ,世界应用程序的部署。 当我input命令进行部署时, $ gcloud preview app deploy app.yaml –set-default 它给了我一个错误,说pipe理虚拟机不适用于您的应用程序的区域。 我联系了谷歌的技术支持代表谷歌,他说他的名字叫凌,他说他“不知道在印度不支持pipe理的虚拟主机”,他希望我指出我在哪里find这些信息。 所以我给他发了这个 ,注意其中的一个答案。 好….. 问题2)所以,我被困住了,不知道该怎么做。 search了“如何在google云上部署nodejs应用程序”,并发现了一个video ,其中一位谷歌开发人员告诉我,“在云中运行你的应用程序有两种主要方式,即基础设施即服务和平台即服务”。 在应用程序引擎上运行它是一个平台即服务,这是不在名单上,所以我去了我唯一的剩余选项。 有一个教程, 书架应用程序教程,也由谷歌,最后一部分描述如何在计算引擎上运行您的应用程序。 我试图通过教程,但是当我input命令 git push cloud 7-gce:master 推我的代码到存储库,它是要求我的用户名和密码,它从来没有提到,在教程中,我不知道该input什么。 我发现这个问题,但我不确定它适用于我的情况。 接下来我介绍了Zachary Newman提出的一些教程,我不能跟随他们使用ubuntu 的教程 ,因为当他们告诉你hello.js文件时,这真的很奇怪,因为我不得不ssh进入ubuntu镜像vm我创build,一切都非常慢,我不熟悉Linux上的命令,所以我不得不查找如何在创buildhello.js文件后“保存并退出”。 我得到的“networking服务器”运行,这是反向代理nginx服务器,但由于我不知道什么是APP_PRIVATE_IP_ADDRESS,当我访问该页面时,我可以看到nginx页面,但不是“hello world”消息应该显示。 请参阅先决条件标题以查看教程试图教给我的内容。 好…. 问题3)在谷歌开发者控制台,一旦你login,有一个导航部分在左边,有一个“云启动”的链接。 在那里,我find了一个链接来创build一个安装了nodejs的虚拟机,它是由Bitnami创build的。 我点击它,我的虚拟机正在运行,我去了提供的外部IP地址,并看到由Bitnami的恭喜(呃…)页面。 我真的不知道该怎么做,所以我又贴出了一个SO问题。 一位bitnami开发人员告诉我,我需要将文件复制到远程存储库,创buildconfiguration文件,之后必须在Apache的configuration中包含该configuration,以便为应用程序提供服务。 怎么样?!?! 他刚刚发布了一个链接,以及一个bitnami wiki页面 。 我用filezilla连接到我的虚拟机,我试图将我的应用程序file upload到虚拟机。 我能够上传除节点模块以外的所有内容(上传时间过长,出于某种原因,在10分钟左右的上传过程中,ftp客户端仍然与服务器断开连接)。 所以我想我只是ssh进入实例,并尝试npm安装我的依赖关系。 但它给了我更多的错误… 问题4)我不知道为什么这个职位被搁置,但我发现这一点 。 我现在找不到确切的页面,但是我在google文档中的某个地方读过,我们不能以root […]

人们使用Node.js部署关系数据库更改的方式有哪些?

我一直在越来越多的投入到Node.js和最近托pipe服务,如Heroku和Nodejitsu,并一直在试图找出如何最好地部署数据库更改postgres或MySQL。 在npm下有几个迁移项目,我可以看到; 然而,似乎所有的东西都是非常麻烦的,或者只是不起作用。 我目前在npm上pipe理Monarch迁移项目,但是目前它本身就是bug,而且我开发这种工具的经验还在其他更程序化的语言中。 那么人们在这些环境中使用什么来部署对其数据库的更改呢? 什么为人工作? 我正在寻找更好地了解目前的情况/过程是什么样的。

我如何自动化Node.js部署?

我正在寻找类似于Capistrano for Rails的东西 – https://github.com/capistrano/capistrano/wiki/ 我希望能够从我的工作站运行一个命令,从GitHub项目更新我的服务器上的代码,并处理应用程序的所有必要的进程重新启动。 我需要能够专门控制这种情况发生,而不是在GitHub的签入事件中使用钩子。 Node.js开发者是否也使用Capistrano,还是有更好的Node.js工具?

一台机器上的node.js服务器实例的水平伸缩

在node.js上运行一个web服务器是一件简单的事情(如其优秀的例子和文档所见),但我想知道如何充分利用专用服务器的CPU资源? 由于node.js是单线程,因此利用多个处理器的唯一方法是通过多个进程。 当然,只有一个进程可以绑定到一个端口,所以似乎必须有一个主/辅助模式,其中主分派孩子,绑定到传入端口,并委托传入连接(和实际处理工作)给孩子。 (也许是通过饥饿的消费模式?) 这是扩展运行node.js的Web服务器的最佳方式吗? 如果是这样,有没有图书馆来简化主/从模式? 如果不是,build议哪种模式或部署设置最好地使用专用机器的全部资源? (这是一个更好的ServerFault问题?)

Heroku + node.js:我有一个使用多个端口的服务器。 我怎样才能让Heroku分配它们?

呃我会尽量做得更清楚.. 在我用node.js编写的应用程序服务器中,我有多个端口的内部代理: 在我的8080端口,我有我的restapi 。 在我的3000端口我有我的推服务器和聊天 。 我使用npm软件包的子域路由器进行内部路由到端口,公开了代理端口的“前端”中的子域。 代码演示: ( <some-app>显然不是<some-app>的真名) require('subdomain-router') ({ host: '<some-app>.herokuapp.com', subdomains: { '': 8080, // <some-app>.herokuapp.com <=> ::8080 –WORKS– 'api': 8080, // api.<some-app>.herokuapp.com <=> ::8080 'chat': 3000, // chat.<some-app>.herokuapp.com <=> ::3000 'push': 3000 // push.<some-app>.herokuapp.com <=> ::3000 } }).listen(process.env.PORT || 5000); 尽pipe我无法通过<some-app>.herokuapp.com:8080访问它,但只能通过<some-app>.herokuapp.com访问它,并让内部的subdomain-router模块达到这个效果。 另外,我无法访问子域名。 当试图访问api.<some-app>.herokuapp.com我从heroku得到No such app错误页面。 TL;访问<some-app>.herokuapp.com DR (redirect到我的API的/v1path),但无法访问<some-app>.herokuapp.com:8080 , <some-app>.herokuapp.com:3000或chat.<some-app>.herokuapp.com […]

指向一个域到我的远程节点JS应用程序?

我试图找出如何在我的Ubuntu 10.04 LTS服务器上部署Node JS。 我读过许多不同的博客和文章,解释多种不同的方式。 大多数似乎过时,或似乎并没有真正的工作。 似乎最简单的解决scheme是使用像永远的东西? 或者是Monit或Supervisor的Upstart。 那是对的吗? 有一件事,我仍然不明白,但是没有使用像Ngnix这样的东西,我怎样才能真正地将我的域名(如example.com)指向我的Node JS应用程序,并且它正在运行端口? 非常感谢任何指导。 我不是这方面的专家,所以请原谅我在这里缺乏知识。 (我正在努力!:) 更新:我问这是为什么我的服务器上我有Ngnix运行我的静态/ Django项目。 我想要使​​用相同的服务器的一些示例节点JS应用程序,我搞乱了。 我已经跟踪了关于虚拟主机和连接到节点JS的链接,这很好,但我仍然不知道如何让我的一个域名实际指向我的服务器上的这个节点应用程序?

Node.js:简单的应用程序不能在Heroku上工作

我已经写了一个基本的node.js应用程序,我已经设法在Heroku上部署它,没有任何问题。 我创build了我的package.json和Procfile ,但是从日志中我发现没有正在运行的进程,因此无法获得任何响应。 可能是什么问题呢? PS:我不想使用Express框架 我的代码: var http = require("http"); http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); console.log("I am working"); }).listen(8888); 我的package.json: { "name": "node-example", "version": "0.0.1", "dependencies": { }, "engines": { "node": "0.8.x", "npm": "1.1.x" } } 日志: 2012-10-22T12:36:58+00:00 heroku[slugc]: Slug compilation started 2012-10-22T12:37:07+00:00 heroku[slugc]: Slug compilation finished 2012-10-22T12:40:55+00:00 heroku[router]: Error H14 […]

(gcloud.preview.app.deploy)错误响应:托pipe虚拟机无法托pipe在应用程序的区域

我已经按照教程https://cloud.google.com/nodejs/getting-started/hello-world (在node.js上部署到Google Cloud Platform hello world应用程序)和上一个命令之后: $ gcloud预览应用程序部署app.yaml – 推广 我得到: 将文件复制到Google Cloud Storage …将文件同步到[gs://staging.first-server-1117.appspot.com/]。 更新模块[默认] …失败。 错误:(gcloud.preview.app.deploy)错误响应:[13]受pipe虚拟机无法托pipe在应用程序的区域中。 (e〜)版本:20151103t135918.388305842753805715 即使没有select时区也会发生这种情况。 为什么会发生? 或者如何修复? 谢谢。