我有一个API网关,它通过VPC链接向网络负载均衡器(NLB)发送请求,然后将其转发到目标实例。根据AWS文档,当目标组是实例时,源ip被自由地传递给目标实例,但是如果通过ip地址然后是NLB ip地址。但是,即使目标组设置为实例,我仍然获得NLB IP地址。
答案 0 :(得分:-1)
如果需要source ip,可以将上下文变量context.identity.sourceIp
映射到集成头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",
}
...