私はHerokuにDjangoアプリケーションをデプロイしましたが、いくつかの要件のために基本的なnodejsファイルを作成しなければならず、同じdynoで実行したいと考えています。 私は解決策をグーグルが、すべてがそうhttps://blog.heroku.com/heroku-django-node 同じブログからずっと離れを思い付くcouldntの、私が述べたbuildpackをインストールした、と私のプロフィールは以下のとおりです。 Herokuの同じdynoでDjangoとnode.jsアプリケーションを実行するには?
web: bin/runsvdir-dyno
Profile.web
: Procfiledjango: gunicorn exampledjangoapp.wsgi:application --bind 127.0.0.1:$DJANGO_PORT
node: node node_app/app.js
私はHerokuでNODE_ENVとDJANGO_PORTの設定を作成しました。ここ は、私がログに見えるものです:だから、私は基本的にやろうとすると、Djangoのアプリであることをhttp://example.herokuapp.comに、ある
var http = require('http'),
httpProxy = require('http-proxy');
//
// Create your proxy server and set the target in the options.
//
httpProxy.createProxyServer({target:'https://example.herokuapp.com/channel'}).listen(process.env.PORT); // See (†)
//
// Create your target server
//
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('request successfully proxied!' + '\n' + JSON.stringify(req.headers, true, 2));
res.end();
}).listen(process.env.PORT);
、およびポイントへhttp://example.herokuapp.com/channel:
Error: listen EADDRINUSE :::56842
2017-05-05T21:02:15.241005+00:00 app[web.1]: at Object.exports._errnoException (util.js:1022:11)
2017-05-05T21:02:15.241006+00:00 app[web.1]: at exports._exceptionWithHostPort (util.js:1045:20)
2017-05-05T21:02:15.241007+00:00 app[web.1]: at Server._listen2 (net.js:1259:14)
2017-05-05T21:02:15.241007+00:00 app[web.1]: at listen (net.js:1295:10)
2017-05-05T21:02:15.241008+00:00 app[web.1]: at Server.listen (net.js:1391:5)
2017-05-05T21:02:15.241009+00:00 app[web.1]: at Object.<anonymous> (/app/node_app/app.js:15:4)
2017-05-05T21:02:15.241009+00:00 app[web.1]: at Module._compile (module.js:570:32)
2017-05-05T21:02:15.241010+00:00 app[web.1]: at Object.Module._extensions..js (module.js:579:10)
2017-05-05T21:02:15.241011+00:00 app[web.1]: at Module.load (module.js:487:32)
2017-05-05T21:02:15.241011+00:00 app[web.1]: at tryModuleLoad (module.js:446:12)
2017-05-05T21:02:15.285970+00:00 app[web.1]: buildpack=runit ps=node at=exit status=1 waitpid_lsb=0
2017-05-05T21:02:15.305915+00:00 app[web.1]: buildpack=runit ps=node at=start
2017-05-05T21:02:16.126572+00:00 app[web.1]: events.js:160
2017-05-05T21:02:16.126582+00:00 app[web.1]: throw er; // Unhandled 'error' event
2017-05-05T21:02:16.126583+00:00 app[web.1]: ^
2017-05-05T21:02:16.126584+00:00 app[web.1]:
2017-05-05T21:02:16.126584+00:00 app[web.1]: Error: listen EADDRINUSE :::56842
2017-05-05T21:02:16.126585+00:00 app[web.1]: at Object.exports._errnoException (util.js:1022:11)
2017-05-05T21:02:16.126586+00:00 app[web.1]: at exports._exceptionWithHostPort (util.js:1045:20)
2017-05-05T21:02:16.126587+00:00 app[web.1]: at Server._listen2 (net.js:1259:14)
2017-05-05T21:02:16.126587+00:00 app[web.1]: at listen (net.js:1295:10)
2017-05-05T21:02:16.126588+00:00 app[web.1]: at Server.listen (net.js:1391:5)
2017-05-05T21:02:16.126589+00:00 app[web.1]: at Object.<anonymous> (/app/node_app/app.js:15:4)
2017-05-05T21:02:16.126589+00:00 app[web.1]: at Module._compile (module.js:570:32)
2017-05-05T21:02:16.126590+00:00 app[web.1]: at Object.Module._extensions..js (module.js:579:10)
2017-05-05T21:02:16.126591+00:00 app[web.1]: at Module.load (module.js:487:32)
2017-05-05T21:02:16.126591+00:00 app[web.1]: at tryModuleLoad (module.js:446:12)
2017-05-05T21:02:16.154176+00:00 app[web.1]: buildpack=runit ps=node at=exit status=1 waitpid_lsb=0
2017-05-05T21:02:16.287874+00:00 heroku[web.1]: Process exited with status 111
2017-05-05T21:02:16.301460+00:00 heroku[web.1]: State changed from starting to crashed
私app.jsですnodejsアプリへ お願いします。
両方のノードであり、リッスンDJANGO:ここでNode.jsのアプリケーションと他のアプリケーション(ここではDjangoのアプリ)に、他のすべての要求にどのようにプロキシ/チャネル要求の例でありますポート80/443?あなたがdjangoからノードまたはノードにdjangoにプロキシする必要があることが分かっているようですが、 'Error:listen EADDRINUSE ::: 56842'はそうではないように見えます。 –
@RobOsborneいいえ、それらは別のポートで動作するように設定されています。私はHerokuでDJANGO_PORTとNODE_ENVのport env変数を設定し、別のポートで動作するように設定しました。ノードのプロキシは私が推測しているところで問題を抱えています。私はそれをどうやって行うのか、本当に無知です。 – Maverick