【问题标题】:AWS: Source ip not visible at instance through Network Load BalancerAWS:通过网络负载均衡器在实例中不可见源 ip
【发布时间】:2018-05-24 23:37:45
【问题描述】:

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

【问题讨论】:

    标签: amazon-web-services aws-api-gateway elastic-load-balancer


    【解决方案1】:

    如果需要源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",                    
       }
    ...
    

    【讨论】:

      猜你喜欢
      • 2019-12-30
      • 2015-05-25
      • 2021-07-16
      • 2023-03-04
      • 1970-01-01
      • 2018-04-02
      • 2021-06-26
      • 2021-12-04
      • 2015-05-02
      相关资源
      最近更新 更多