为什么部署到Elastic Beanstalk的NodeJS服务器在端口80上接收HTTPS流量?

时间:2018-04-02 06:55:27

标签: node.js amazon-web-services https elastic-beanstalk amazon-elastic-beanstalk

我写了一个非常简单的NodeJS服务器

var http = require("http");

http.createServer(function (request, response) {
   response.writeHead(200, {'Content-Type': 'text/plain'});
   response.end('Hello World\n');
}).listen(80);
console.log('Server running at http://127.0.0.1:8081/');

然后我使用" Classic Load Balancer"将它部署到Elastic Beanstalk;选择了选项。

奇怪的是,服务器会响应https发送的流量。

我预计它不会知道如何处理此流量,因为服务器只在端口80上侦听,这是http(没有s)。

有没有人有解释或至少知道我的NodeJS处理非HTTPS请求的原因?

1 个答案:

答案 0 :(得分:3)

发出https请求时,它将在Load Balancer处终止。然后,Load Balancer将向监听器(即NodeJS应用程序)发出http请求。这是ElasticBeanstalk中Load Balancer的默认配置。

因此,您的NodeJS应用正在处理来自Load Balancer的http请求,而不是直接从客户端处理https