Tag: load balancing

Amazon Elastic负载均衡器不会填充x-forward-proto头

我试图强制所有http请求到https请求,我面临的问题是弹性负载平衡器不填充请求中的x-forward-proto头。 这是我正在使用的代码,并因此导致redirect循环。 我将如何解决这个问题? app.use (function (req, res, next) { console.log('Request headers = ' + JSON.stringify(req.headers)); console.log('Request protocol = ' + JSON.stringify(req.protocol)); var schema = (req.headers['x-forwarded-proto'] || '').toLowerCase(); if (schema === 'https') { next(); } else { res.redirect('https://' + req.headers.host + req.url); } });

健康探针将实例标记为不健康,但不是

我为我的节点应用程序使用了一个VM规模集。 我的应用程序有一个可通过www.mydomain.com/api/healthcheck访问的操作,并只打印一些json。 当我configuration我的健康探测器使用TCP协议时,一切工作正常,也是我的api返回给我预期的JSON(和状态200)。 但是,当我现在切换我的健康探测使用HTTP和path= /api/healthcheck ,我的网站不能访问了( ERR_CONNECTION_TIMED_OUT …我想loadbalancer拿出所有实例,因为健康探测告诉他,每个实例不良) 我在我的节点应用程序前面使用nginx,但我也尝试(testing)configuration我的LoadBalancer路由端口80到后端口8080(我的节点应用程序在每台机器上运行,所以我可以避免nginx代理)。 但是我得到了同样的行为。 我不知道为什么我的自定义健康检查不起作用。 希望你能帮忙。 编辑:为了testing,我做了以下: 在每个虚拟机上运行3000端口上的另一个nodejs应用程序,这只是打印“hello world”(没有nginx代理!) 创build一个端口3000的LB规则,并configuration我的NSG允许:3000 在开始时,我的健康探针被configuration为使用tcp 结果: mydoamin.com:3000/hello : mydoamin.com:3000/hello hello可用(打印你好,并返回200) 现在我configuration我的健康探测器使用http协议,端口3000和位置/hello 。 结果:我的整个networking应用程序不再可用