Articles of heroku

在本地服务器上复制heroku / node.js内存泄露以进行debugging

如何在本地复制Heroku的内存问题进行debugging? 或更好的configuration文件内存使用Heroku? 我在Heroku上有一个Node.js应用程序。 一个服务器端实用程序做了一堆工作来生成用于用户项目的下载文件。 对于一个特别大的情况,Heroku经过一些练习后会产生以下警告: Process running mem=529M(103.4%) 2015-01-24T02:23:18.240108+00:00 heroku[web.1]: Error R14 (Memory quota exceeded) 2015-01-24T02:23:18.240108+00:00 heroku[web.1]: Process running mem=529M(103.4%) … 在每次额外的锻炼之后,记忆的使用会增加,所以在我看来就像一个确定的泄漏: 2015-01-24T02:31:22.321689+00:00 heroku[web.1]: Process running mem=747M(145.9%) 2015-01-24T02:31:22.321689+00:00 heroku[web.1]: Error R14 (Memory quota exceeded) 2015-01-24T02:31:44.523511+00:00 heroku[web.1]: Process running mem=747M(145.9%) 2015-01-24T02:31:44.523800+00:00 heroku[web.1]: Error R14 (Memory quota exceeded) 2015-01-24T02:32:06.296071+00:00 heroku[web.1]: Process running mem=747M(145.9%) 2015-01-24T02:32:06.296314+00:00 heroku[web.1]: Error R14 […]

在ExpressJS 4中使用来自不同域的公共目录

我正在为Heroku部署一个简单的Express应用程序。 它基本上是一个投资组合网站,服务于图像响应从客户端JavaScript的Ajax调用。 现在,我的所有图像(以及其他静态css和客户端JS文件)都在公共目录中,这是在通过Express CLI生成器实例化应用程序时创build的。 当我在本地运行它时,一切正常,但我不想直接将图像file upload到Heroku。 在那里运行应用程序似乎是最简单的,这样我就不必自己处理设置服务器了,但是我想为从其他地方付费的图像提供服务。 看起来这将足够简单,可以为我的所有静态文件提供服务,只需更改Express的中间件查找公共目录的位置即可: // Works like this with everything in one place: app.use(express.static(path.join(__dirname, 'public'))); // What I thought I could do to serve from elsewhere: app.use(express.static('www.mydomain.net/path/to/public')); 我已经尝试了一些变化,如包括__dirname(即使我很确定这是错误的),并改变path(包括添加/ www.mydomain.net的前面)。 我也确定其他地方的path在前面不包含“./”,所以他们不应该在自己的目录中查找。 这些工作都没有 – 我已经尝试了所有地方使用工头和npm开始,以及实际上推到我的英雄主。 我看到了HTML的基本框架,但是CSS和JS没有应用,图像也没有出现。 控制台显示404错误的一切。 我已经相当广泛地search了一些关于Express和Heroku的相当多的知识,但仍然无法做到这一点。 那么,有没有一个简单的解决scheme,我忽略了,还是我试图做一些没有意义的事情? 编辑:我无法弄清楚这一点,所以我只是继续前进,并在一台服务器上安装整个应用程序。 工作很好,但我仍然对此感到好奇。

未能在git部署节点服务器上推送到heroku

即时通讯使用herokutesting服务器我跟着其他的例子,但我一直得到同样的错误,我没有看到任何地方。 我甚至尝试删除我的回购和我的heroku应用程序,并再次启动,但我使用时得到相同的错误 git push heroku master 。 $ git push heroku master fatal: unable to access 'https://git.heroku.com/football-app-development.git/': Could not resolve host: git.heroku.com ` $ cat .git/config [core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true hideDotFiles = dotGitOnly [remote "heroku"] url = https://git.heroku.com/football-app-development.git fetch = […]

启动js RangeError:在heroku上超出最大调用堆栈大小

从我的heroku应用程序日志得到这个错误。 我的本地机器上的相同代码运行完美。 但是,在英雄服务器上,这是从terminal确切的错误。 2015-02-09T12:00:03.532045+00:00 heroku[router]: at=info method=GET path="/socket.io/1/websocket/37ykGNWYvQ20k6c2LH4k?__sails_io_sdk_version=0.10.0&__sails_io_sdk_platform=browser&__sails_io_sdk_language=javascript" host=myapp.herokuapp.com request_id=6f3206e0-db44-4252-8eba-75a6d5724be0 fwd="95.34.203.67" dyno=web.1 connect=1ms service=598515ms status=101 bytes=129 2015-02-09T12:00:03.431464+00:00 app[web.1]: RangeError: Maximum call stack size exceeded 2015-02-09T12:00:03.430489+00:00 app[web.1]: throw message; 2015-02-09T12:00:03.430500+00:00 app[web.1]: ^ 2015-02-09T12:00:03.360874+00:00 app[web.1]: 2015-02-09T12:00:03.430103+00:00 app[web.1]: /app/node_modules/sails-mongo/node_modules/mongodb/lib/mongodb/connection/base.js:246 2015-02-09T12:00:03.531458+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=POST path="/app/issues" host=myapp.herokuapp.com request_id=b95a2e6f-7573-4581-8523-e745c125f6c6 fwd="192.168.0.146,112.196.35.195" dyno=web.1 connect=1ms service=1563ms status=503 bytes=0 做了一些研发,发现它在mongoDB版本的sails版本上有一些更新。 […]

Nodejs GM模块ImageMagick – 奇怪的错误

我有一个非常奇怪的错误。 我正在使用MAC OS X 10.9.5。 当我使用GM( npm install gm )的一些函数像resize或其他东西我得到这个错误。 events.js:72 throw er; // Unhandled 'error' event ^ Error: spawn ENOENT at errnoException (child_process.js:988:11) at Process.ChildProcess._handle.onexit (child_process.js:779:34) 我已经find了很多关于它的线索,据他们说,我已经安装了graphicksmagic和imagemagick与酿造系统。 brew install imagemagick brew install graphicsmagick 这是工作了一段时间,但没有理由,它开始再次显示上述错误。 我检查了我已经在系统中安装了imagemagick和graphicksmagick,并从terminal上运行。 我检查了如果我在$ PATH和它在那里。 如果我在nodejs中运行它,它会在控制台中显示正确版本的imagemagick,所以我假设pathj在nodejs中是可以的。 var sys = require('sys') var exec = require('child_process').exec; function puts(error, stdout, stderr) { if(error) sys.puts(error); if(stderr) […]

无法创buildStrongOps警报

Heroku上的node.js应用程序使用了Strongloop的Loopback。 Strongloop heroku插件是活跃的,我可以看到关于CPU负载等仪表板上的一些信息,但尝试创build警报(通过单击感叹号,填写适当的信息,然后单击“添加”button)不适用于我:我请参阅“警报”选项卡上未创build的警报。 不过,如果我做“slc strongops”,并在我的机器(而不是Heroku)本地运行这个应用程序,然后我去https://strongops.strongloop.com/ops/dashboard ,我可以成功地创build警报,并在我的本地应用程序的适当标签。 任何build议我做错了什么?

Heroku,NodeJs App,Gulp和资产修改问题

将我的NodeJs应用程序推送到Heroku时,我遇到资产修改问题。 我正计划在安装后运行我的gulp生产任务。 我的一个任务涉及修改文件(app.js – > app.6789.js)。 这意味着我必须清理对index.ejs中这些文件的引用。 问题在于Heroku的临时文件系统(其中没有写入的文件对于任何其他testing仪中的进程是可见的,并且在停止或重新启动测功机的时刻任何写入的文件将被丢弃)。 所以既然我在写完文件之后运行这个版本,很有可能会失去这个版本。 一个想法是我可以在本地编译所有这些,并推高了index.js,但至less在我的图像,他们会在那里两次,因为我压缩他们等,这增加了我的子弹大小… 我错过了关于资产修改/节点/ Gulp / Heroku的东西吗? 我似乎无法find一个解决scheme或实例发生在别人身上,这让我相信我把这个错误设置了错误,这可能是非常真实的。 谢谢你的帮助!!

如何避免一个heroku请求超时?

我已经将我的node.js服务部署到Heroku,但面临请求超时错误: https : //devcenter.heroku.com/articles/error-codes#h12-request-timeout 。 我怎样才能避免这一点或解决这个问题? 这是node.js服务中的错误还是可以在Heroku Dyno设置中更改? 这在日志中显示: 2015-06-21T00:48:01.965583+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=POST path="/" host=damp-meadow-5935.herokuapp.com request_id=4ca2e2a9-b983-4cec-a8e1-cd7e73c5b274 fwd="54.157.11.252" dyno=web.1 connect=2ms service=30007ms status=503 bytes=0 我的node.js服务如下所示: // set up ====================================================================== var express = require('express'); var app = express(); // create our app w/ express var port = process.env.PORT || 5001; // set the port var […]

Node.js + Socket.io:连接断开时泄漏内存

背后故事的位: 我的Node应用程序,名为Sleepychat(在生产中,在Heroku上托pipe)最近开始报告内存限制达到的错误(在512MB)。 幸运的是,Heroku允许这个,直到达到5次才会崩溃应用程序,所以这很好。 不过,我觉得奇怪的是,这只是在最近推向Heroku之后才发生的,只不过是增加一个页面而已。 我的理论是,Heroku可能在更新上使用了更新版本的Node,但似乎并非如此。 我降级,错误仍然发生。 我的来源可以在GitHub上find 。 185行是连接代码,1553行是断开连接代码。 现在,我有一些时间来运行使用New Relic和Node Inspector的代码来分析它,并且似乎任何连接,无论是允许的,还是立即拒绝和断开连接,都会分配less量的内存断开。 例如,我导航到本地主机,页面连接到文档准备就绪,New Relic显示内存略有增加。 通常大约500kb(这对我来说仍然很大,但我猜这主要是套接字对象)。 当我断开连接时,New Relic没有发生变化。 更有趣的是,我可以垃圾网页刷新,以迅速激增内存使用量。 早些时候我提到连接是否被拒绝并不重要。 通过这个,我的意思是在15秒内互相连接3次后,网站会立即拒绝新的连接并断开连接。 尽pipe如此,页面刷新(自动连接)增加了RAM。 我已经看了很多次,看看我是不是发布了一些东西,但据我所知,一切都应该由范围来pipe理,所以我不知道是什么东西在泄漏。 不过,我注意到一些奇怪的行为,一旦我添加了New Relic。 首先,一旦Sleepychat达到了512MB的极限,Heroku会报告一个内存限制达到的错误,但是New Relic会显示好像一个大块(〜100MB)已经释放。 尽pipe如此,Heroku稍后还会报告更高的使用率。 其次,每当我使用节点检查器logging堆分配时,New Relic报告内存使用量的下降,但是一旦我停止logging就会立即恢复。 这是来自Node Inspector的一个快照文件(实际上是一个分配时间表)。 当我启动垃圾邮件页面刷新10秒。 另外,这里是New Relic报道的图片。 快照: 快照文件 新的遗物: 我不知道发生了什么事。 有人有主意吗?

node.js heroku – app / web.1:错误:没有指定模板

我在我的heroku node.js应用程序中得到这个错误。 它运行良好,突然开始看到这个错误,每当我们尝试访问应用程序,我们得到“内部服务器错误”。 同样的node.js应用程序在我的本地运行良好。 请让我知道如何解决这个问题。 用heroku支持,但他们不能帮助太多。 Aug 27 21:42:22 careerconnections app/web.1: Error: no template specified Aug 27 21:42:22 careerconnections app/web.1: at engine (/app/node_modules/adaro/lib/engine.js:90:29) Aug 27 21:42:22 careerconnections app/web.1: at View.proto.render (/app/node_modules/engine-munger/lib/expressView.js:45:9) Aug 27 21:42:22 careerconnections app/web.1: at tryRender (/app/node_modules/express/lib/application.js:639:10) Aug 27 21:42:22 careerconnections app/web.1: at EventEmitter.render (/app/node_modules/express/lib/application.js:591:3) Aug 27 21:42:22 careerconnections app/web.1: at ServerResponse.render (/app/node_modules/express/lib/response.js:961:7) […]