我有一个AWS ELB,它有两个健康的EC2实例。我也使用Route53进行DNS管理。 EC2计算机正在运行Windows Server 2012 R2和IIS 8.5。我已经部署了一台API的每台机器。我还在机器上安装了SSL证书并选择了"要求SSL" IIS中API的选项。我这样做是因为我不希望ELB处理SSL终止。
我的监听器配置如下:
Load Balancer Protocol: TCP
Load Balancer Port: 443
Instance Protocol: TCP
Instance Port: 443
例如,当我使用Postman向API发出请求时,我收到来自其中一个EC2实例的响应。但是,如果我登录这两台计算机并转到IIS日志目录(C:\inetpub\logs\LogFiles\W3SVC1
),我可以看到两台计算机几乎同时记录了我发出的相同请求(不同的几秒钟)。因此,似乎ELB将请求路由到两台机器而不是一台机器。
当我使用以下侦听器配置并使用正确的SSL证书(已上载)时,情况并非如此:
Load Balancer Protocol: HTTPS
Load Balancer Port: 443
Instance Protocol: HTTP
Instance Port: 80
在我发出请求的第二种情况下,它仅在其中一台机器上处理。
但是现在有了TCP侦听器配置,似乎两台机器正在处理相同的请求,但我只从其中一个获得响应。
你知道为什么会这样吗?有没有办法只在其中一台具有此TCP侦听器的计算机上处理请求?