Tag: heroku

Heroku雪松堆栈上的Node.js端口问题

我正在Node.js中运行一个基本的Express应用程序,并试图部署到Heroku。 该应用程序在本地正常工作,我相信我的设置与Heroku已经很好,直到启动服务器,我得到以下错误: 2011-09-21T16:42:36+00:00 heroku[web.1]: State changed from created to starting 2011-09-21T16:42:39+00:00 app[web.1]: Express server listening on port 3000 in production mode 2011-09-21T16:42:40+00:00 heroku[web.1]: Error R11 (Bad bind) -> Process bound to port 3000, should be 12810 (see environment variable PORT) 2011-09-21T16:42:40+00:00 heroku[web.1]: Stopping process with SIGKILL 2011-09-21T16:42:40+00:00 heroku[web.1]: Process exited 这是目前我所有在我的app.js app.listen(3000); 我也按照Heroku入门中所提到的来运行它。 $ heroku […]

Heroku + Cloudflare完全免费的SSL

尝试使用Cloudflares新的免费通用SSL在Heroku上获得完全免费的SSL 阅读这篇文章: http : //mikecoutermarsh.com/adding-ssl-to-heroku-with-cloudflare/ 这似乎表明现在Cloudflare可以免费提供SSL。 我采取的步骤: 使用Cloudflare设置我的DNS(免费帐户) 将我的域名转发到我的herokuapp(CNAME example-app.com – > example-app.herokuapp.com) 将Cloudflare SSL选项设置为“完全SSL” 将我的域添加到我的heroku应用程序 用这个快递中间件强制https: app.use(function(req, res, next) { if (req.headers['x-forwarded-proto'] != 'https') { res.redirect('https://' + req.headers.host + req.path); } else { return next(); } }); heroku域http://example-app.herokuapp.com正常工作,并redirect到https://example-app.herokuapp.com ,绿色锁和所有。 http://example-app.com和https://example-app.com都不起作用。 浏览器选项卡图标只是保持旋转,永远不会解决。 任何想法如何得到这个工作? 这甚至有可能吗? *更新 这看起来实际上是可能的。 从CloudFlare支持: 嗨比尔, 基本上,只要“来源”支持SSL连接,您就可以在CloudFlare中使用完全SSL。 西蒙 CloudFlare今天发布了这篇博文: https : //blog.cloudflare.com/universal-ssl-be-just-a-bit-more-patient/ 我的网站已经开始解决,但得到了“您的连接不是私人的”信息,就像在博客文章的“错误您可能会看到”部分。 […]

Webpack的后端?

我只是想知道,我开始使用Webpack进行一个新的项目,到目前为止工作正常。 我几乎会说我喜欢它比我之前使用的Grunt更好。 但现在我很困惑,我应该如何和我的Express后端使用它? 看,我正在创build一个前端(ReactJS)和后端(ExpressJS)的应用程序。 该应用程序将在Heroku上发布。 现在看起来我也应该使用ExpressJS的Webpack,通过一个命令(前端和后端)启动和运行应用程序。 但是写这篇博文的人似乎使用Webpack将所有的后端js文件捆绑在一起,这在我看来确实没有必要。 为什么要捆绑我的后端文件? 我想我只是想运行后端,观察我的后端文件进行更改,并将剩下的Webpackfunction用于前端。 你们如何捆绑前端,但同时运行后端nodejs部分? 还是有什么好的理由来捆绑Webpack的后端文件?

可扩展的Node.js应用程序架构

过去,我只在本地机器上玩过Node.js,所以我只有单进程Node.js应用程序的经验。 现在我想创build一个Web应用程序,我可以在网上发布。 这个networking应用程序就像多人游戏 – 使用Socket.IO进行客户端 – 服务器通信,使用Express处理HTTP请求,使用Grunt进行任务pipe理等等 – 我还想使用其他NPM软件包以执行各种任务。 我想devise这个应用程序的体系结构 启用横向可伸缩性(后来,当我有很多访问者,我不必重写整个应用程序) 最大限度地减less对不同执行环境的依赖(最大化可移植性) 我怎样才能实现这个使用节点? 我想高级架构将包括: 不同的服务器进程 (每个进程将运行一个Express实例并处理传入的HTTP请求)。 应该有一个负载平衡器的地方。 可选: 后台进程可以定期运行并处理“共享数据” 由于我的应用程序是一个多人应用程序,每个用户都可以与其他在线用户交互,所以我应该在某个地方存储一些可以在这些进程之间共享的共同状态 (“共享数据”)。 为了简单起见,起初我不必坚持这个共享数据,所以我想我应该使用像Redis这样的内存数据存储。 大图像看起来像这样: 这个devise提出了一些问题: 如何产生过程? 我应该使用Node的child_process还是cluster模块并手动启动工作进程? 顺便说一句,是否有可能手动启动这些,例如,如果我的应用程序部署到Heroku或Nodejitsu ? 或者: is there a better way to store these information in a config file? 我的意思是,如果我可以configuration多less个服务器实例,而不是编辑代码而是一个configuration条目,会更好。 系统边界? 如果我手动产生进程,那么(我猜)所有进程都会在同一个(虚拟)服务器上运行。 如果这个服务器有4个CPU内核,那么你最多可以产生4个Node实例,因为如果你产生了更多的CPU,你的CPU将会产生上下文切换,这会损害整体性能。 如果我需要更多的stream程实例,我该怎么办? 假设我需要100个服务器实例。 我必须将我的应用程序部署到25台服务器,并在每台服务器上产生4个进程? 在我看来,像Nodejitsu这样的主机服务以某种方式隐藏了你的这个系统边界层,但我不明白它在实践中是如何工作的。 特别是有这个“共享数据”提供者组件。 我想这个提供者(比如一个Redis服务器)必须运行在不同的服务器上,这样它才能被所有进程使用。 但在这种情况下,很容易成为瓶颈,不是吗? 负载平衡器? 如果我使用一些托pipe服务,我必须自己设置负载均衡器层吗? […]

Heroku PHP和Node.js在同一个应用程序

我正在使用名为exec-php的Node包在Node.js应用程序中执行PHP函数。 我想推这个应用程序Heroku ,但我想知道如何做到这一点,以及如何这将是在本地的PHP箱。 我正在使用/Applications/MAMP/bin/php/php7.0.0/bin/php 。 Heroku中的 PHP bin的path是什么? 我testing了vendor / bin / heroku-php-apache2,但是它不起作用,那么Heroku中PHP二进制文件的path是什么?

如果应用程序崩溃,heroku是否重新启动NodeJS服务器?

我们在Heroku上运行NodeJS服务器。 我们想知道,如果应用程序崩溃,heroku是否会重新启动应用程序。 免费版和付费版之间还会有什么不同的行为?

一个heroku应用上的多个工作者/networking进程

有没有一些方法来configuration多个工作和/或Web进程在单个Heroku应用程序容器中运行? 或者这是否必须分解成多个Heroku应用程序? 例如: worker: node capture.js worker: node process.js worker: node purge.js web: node api.js web: node web.js

Node.js应用程序在本地工作,但Heroku说缺less模块

我使用Node.JS和Socket.IO创build了一个简单的聊天应用程序,本地一切正常,但是当我将它推送到heroku时,它给我一个应用程序错误,当我检查日志时,这是错误: Error: Cannot find module 'indexof' at Function.Module._resolveFilename <module.js:338:15> at Function.Module._load <module.js:280:25> at Module.require <module.js:364:17> at require <module.js:380:17> at Object.<anonymous> </app/node_modules/socket.io/node_modules/socket.io-parser/node_modules/emitter/index.js:6:13> at Module._compile <module.js:456:26> at Object.Module._extensions..js <module.js:474:10> at Module.load <module.js:356:32> at Functin.Module._load <module.js:312:12> at Module.require <module.js:364:17> 所以我发现indexof是一个Socket.IO使用的模块,它位于我的node_modules文件夹中,但是由于某种原因,它不会被推送到heroku,或者只是不被识别。 我重新安装我的模块5-6次,重新创build应用程序,但它仍然给我同样的错误。 我的package.json文件有3个依赖项:Express,Socket.IO和Jade

Socket.io和Heroku上的多个Dyno Node.js应用程序。 WebSocket在连接build立之前closures

我正在构build一个部署到使用Websockets的Heroku的App。 当我只使用1个dynamic码时,websockets连接正常工作,但当我缩放到大于1时,出现以下错误 POST http://****.herokuapp.com/socket.io/?EIO = 2&transport = polling&t = 1412600135378-1&sid = zQzJJ8oPo5p3yiwIAAAC 400(Bad Request)socket.io-1.0.4.js:2 WebSocket连接到'ws://****.herokuapp.com/socket.io/?EIO = 2&transport = websocket&sid = zQzJJ8oPo5p3yiwIAAAC'失败:WebSocket在连接build立之前closures。 socket.io-1.0.4.js:2 我正在使用Redis适配器来启用多个Web进程 var io = socket.listen(server); var redisAdapter = require('socket.io-redis'); var redis = require('redis'); var pub = redis.createClient(18049, '[URI]', {auth_pass:"[PASS]"}); var sub = redis.createClient(18049, '[URI]', {detect_buffers: true, auth_pass:"[PASS]"} ); io.adapter( redisAdapter({pubClient: pub, subClient: sub}) […]

为Hubot添加Post支持

我正在尝试将http-post-say.coffee脚本添加到Heroku上托pipe的hubot应用程序。 该文件表明,一旦你添加脚本,它会创build'/hubot/say'路线,它接受以下格式的发布请求。 curl -X POST http://localhost:8080/hubot/say -d message=lala -d room='#dev' 我添加了脚本,并修改了url,但我收到以下错误: Cannot POST /hubot/say 我的下一步是添加一些依赖关系。 我注意到其他应用程序使用robot.router.post有这些依赖关系。 "htmlparser": "1.7.6", "connect": "2.3.4", "connect_router": "1.8.6", "scoped-http-client": "0.9.7" 我部署了我的更改,但仍然收到Cannot POST /hubot/say当我尝试击中该路线。 有什么我失踪? 我不是很熟悉node.js或hubot。