当前位置: 首页 > 面试题库 >

Heroku上的HTTPS Node.js应用程序

寿丰
2023-03-14
问题内容

我已经配置了SSL enpoint,并且可以确认它正在工作。当我进入日志时,会看到以下内容:

Jul 13 08:14:10 support-dash app/web.1:  Express server listening on port 17621 
Jul 13 08:14:10 support-dash heroku/web.1:  Stopping all processes with SIGTERM 
Jul 13 08:14:11 support-dash heroku/web.1:  State changed from starting to up 
Jul 13 08:14:13 support-dash heroku/web.1:  Process exited with status 143 
Jul 13 08:15:48 support-dash heroku/router:  at=error code=H12 desc="Request timeout" method=GET path=/ host=app.supportdash.com fwd="68.63.87.85" dyno=web.1 connect=2ms service=30000ms status=503 bytes=0 
Jul 13 08:16:18 support-dash heroku/router:  at=error code=H12 desc="Request timeout" method=GET path=/favicon.ico host=app.supportdash.com fwd="68.63.87.85" dyno=web.1 connect=2ms service=30007ms status=503 bytes=0

我试图追踪有关退出代码143的一些信息,以及为什么所有进程都被停止。签出以下服务器文件:

var http = require('http');
var https = require('https');
var fs = require('fs');
var express = require("express");

var app = express();

app.set('port', process.env.PORT || 3000);
app.use(express.logger());

app.get('/', function(request, response) {
  response.send('Hello World 2!');
});

var privateKey = fs.readFileSync(__dirname + '/ssl/server.key').toString();
var certificate = fs.readFileSync(__dirname + '/ssl/gandiSSL.pem').toString();

var options = {
  key: privateKey,
  cert: certificate
};

https.createServer(options, app).listen(process.env.PORT, function () {
  console.log("Express server listening on port " + app.get('port'));
});

感谢您的提前反馈。如果需要,我可以提供更多详细信息。

------解决方案(编辑)-------

请参阅下面的答案。


问题答案:

我在这里找到了答案:ExpressJS节点HTTPS服务器上的Heroku错误H13

“ SSL终止发生在Heroku的负载均衡器上;它们会向您的应用发送普通(非SSL)流量,因此您的应用应创建一个非HTTPS服务器。”

然后,我将文件更改为:

var http = require('http');
var express = require("express");

var app = express();

app.set('port', process.env.PORT || 3000);
app.use(express.logger());

app.get('/', function(request, response) {
  console.log('[support dash] processing get request')
  response.send('Hello World 2!');
});

app.listen(process.env.PORT, function () {
  console.log('***** exp listening on port: ' + process.env.PORT);
});

现在一切都通过https运行良好。祝好运!



 类似资料:
  • 2020-01-28T01:42:46.028688+00:00 Heroku[web.1]:使用命令启动进程 2020-01-28T01:42:45.000000+00:00APP[api]:生成成功 2020-01-28T01:42:48.451589+00:00Heroku[web.1]:状态从启动更改为崩溃 2020-01-28T01:42:48.433700+00:00 Heroku[W

  • 我有一个非常简单的Rails3.2.6应用程序。我多年来一直使用Heroku来托管原型,总是在免费层上。我终于在我最新的应用程序上添加了一个付费的dyno,并添加了新的Relic来监控性能。 我在极其简单的页面上看到4500+ms的请求时间,几乎零流量(我们还没有推出)。New Relic表示,99%的时间都花在了渲染模板上。这是一个75行完全静态的haml模板内的100行布局。应用程序模板具有标

  • 我正在尝试使用grails教程将我的应用程序连接到共享数据库5MB。我使用的是grails 2.1.0。在我的本地机器上,当我运行heroku配置时,我可以看到DATABASE_URL被设置了,但是在执行git push之后······我的生成因错误而停止: 因此,我添加了日志记录,以查看Heroku上的环境。我已将println system.env添加到datasource.groovy中,但

  • 我有一个使用Twitter API开发的Nodejs应用程序。当托管在Heroku上时,它会出现以下错误: 2018-12-14T10:00:03.678180 00:00 heroku[web.1]:错误 R10(启动超时)- 在搜索时,我遇到了这些StackOverflow问题q1 q2,但它们都使用ExpressJS并监听固定端口,而不是Heroku提供的端口,而我的应用程序没有使用Expr

  • 我正在尝试将我的JavaSpring Boot Web应用程序部署到Heroku。 要在本地启动它,我运行: 然后 因此,我为Heroku创建了Procfile: 我使用Heroku-Github集成,应用程序从Github部署到Heroku。所以我就把它推到那里。 但应用程序不会启动。 给我: 不显示目录。 我认为Heroku没有构建这个应用程序。但是我做错了什么?提前感谢您的建议!