AWS:源IP在实例中通过网络负载均衡器不可见

问题描述 投票:1回答:1

我有一个API网关,它通过VPC链接向网络负载均衡器(NLB)发送请求,然后将其转发到目标实例。根据AWS文档,当目标组是实例时,源ip被自由地传递给目标实例,但是如果通过ip地址然后是NLB ip地址。但是,即使目标组设置为实例,我仍然获得NLB IP地址。

amazon-web-services aws-api-gateway elastic-load-balancer
1个回答
-1
投票

如果您需要源ip,则可以将上下文变量context.identity.sourceIpto映射到集成头docs。您将能够在服务器中访问此标头。

NLB的文档指的是proxy protocol 2支持,它将允许您获取与nlb的连接的源ip。这需要运行启用了代理协议的Web服务器(squid / nginx有一个标志来启用它)。对于VPC链接,此IP与您的服务器请求的源IP不同,因为NLB实际上看到来自API网关的连接,因此在NLB上启用此功能将返回API网关的内部IP地址。

在招摇时,它看起来像

...
  "requestParameters" : { 
    "integration.request.header.x-source-ip" : "context.identity.sourceIp",                    
   }
...
© www.soinside.com 2019 - 2024. All rights reserved.