我写了一个非常简单的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请求的原因?
答案 0 :(得分:3)
发出https
请求时,它将在Load Balancer处终止。然后,Load Balancer将向监听器(即NodeJS应用程序)发出http
请求。这是ElasticBeanstalk中Load Balancer的默认配置。
因此,您的NodeJS应用正在处理来自Load Balancer的http
请求,而不是直接从客户端处理https
。