对ELB [使用代理协议]和Ngnix代理服务器

时间:2017-03-30 07:41:37

标签: node.js sockets tcp proxy amazon-elb

我正在尝试获取连接到Nodejs websocket服务器的客户端IP。 这篇博客正是我要做的 http://blog.seafuj.com/using-elb-with-websockets 。这是正在工作,我正在获取客户端IP。

现在我的问题是: 一旦通过ELB和ngnix从客户端到服务器进行初始握手和连接;来自客户的后续请求 [sendText()]将通过ELB 或者他们是否会绕过ELB 直接进入websoket服务器。

示例客户端代码:

var connection = ws.connect('ws://<ELB>:80');
    connection.on("connect", function () {
                console.log("Connection established");
                connection.sendText("Hi");
                connection.sendText("Hello");           
        })

我在评论中超过here

  

2)从此时开始和此TCP连接的生命周期,   ELB在客户端和后端之间保持准直接连接   服务器。 3)“准直接”意味着连接通过代理   ELB。因此,当TCP连接处于活动状态时,ELB完全清楚   参与的两个端点(客户端和后端服务器)。 -   Jan-Philip Gehrcke

我怎么不清楚tcp请求[不是握手和连接建立]是直接到服务器还是通过ELB-&gt; ngnix - &gt; websoket服务器。

1 个答案:

答案 0 :(得分:0)

在ELB中启用代理协议将在标头中添加源ips,目标ips等信息,除了它不会执行任何其他操作。对服务器的所有请求都只通过elb。 如果你想验证它在私有子网中引导服务器与私人IP与elb在它上面,它仍然会工作。