当前位置: 首页 > 知识库问答 >
问题:

如何从Google容器引擎访问HTTP请求的客户端IP?

安泰平
2023-03-14

我在docker容器中运行gunicorn flask服务,并使用Google容器引擎。我在下面的教程中设置了集群http://kubernetes.io/docs/hellonode/

REMOTE_ADDR环境变量在Kubernetes集群中始终包含一个内部地址。我要找的是HTTP_X_FORWARDED_for,但请求头中缺少它。是否可以将服务配置为在请求中保留外部客户端ip?

共有2个答案

羊舌高峰
2023-03-14

我假设您通过将服务的类型设置为LoadBalancer?不幸的是,由于客户端IP丢失,目前传入的网络负载平衡数据包通过Kubernetes路由的方式受到了限制。

您可以设置一个ingres对象,将您的服务与Google Cloud HTTP(s)负载平衡器集成,从而将X-Forwarded-For头添加到传入请求中,而不是使用服务的LoadBalancer类型。

锺离鸿
2023-03-14

如果有人被困在这个问题上,有更好的方法。根据kubernetes版本,您可以使用以下注释:

service.spec.externalTrafficPolicy: Local 

1.7

service.beta.kubernetes.io/external-traffic: OnlyLocal

on 1.5-1.6

在此之前不支持

资料来源:https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/

请注意,这里有一些警告:https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#caveats-以及保留源IP时的限制

 类似资料:
  • 问题内容: 我无法在Google Container Engine中使用“应用程序默认凭据”。这些文档说,它们是为App Engine和Compute Engine设计的,但是有人告诉我,它们应该透明地传递给在Container Engine上运行的容器。 这是失败的代码: 失败的错误: 期望Application Default Credentials与Container Engine一起使用是

  • 当浏览器请求网页时,它会向 Web 服务器发送特定信息,这些信息不能被直接读取,因为这些信息是作为 HTTP 请求的头的一部分进行传输的。您可以查看 HTTP 协议 了解更多相关信息。 以下是来自于浏览器端的重要头信息,您可以在 Web 编程中频繁使用: 头信息 描述 Accept 这个头信息指定浏览器或其他客户端可以处理的 MIME 类型。值 image/png 或 image/jpeg 是最常

  • 我正在使用flurl提交HTTP请求,这是非常有用的。现在,我需要将一些请求的“content-type”头更改为“application/json;odata=verbose” 您可以看到我如何尝试添加上面的头() 不幸的是,这给了我以下错误: “InvalidOperationException:错误使用的标头名称。请确保请求标头与HttpRequestMessage一起使用,响应标头与Htt

  • 我在Infinispan上使用Memcached创建了一个分布式集群。 现在,我需要使用SpyMemcach客户端访问我的缓存。 我试过这个: 但是我得到了这个错误: 在我看来,这已经有点令人困惑了。如果通过一台机器我有多个缓存,我的客户会选择哪个缓存??? 非常感谢!

  • 我们正在开发一个IOS应用程序,它使用GoogleSignIn和GoogleAPIClientForREST来获取用户的日历。 正常的流程是客户端用户登录Gmail,然后对其进行授权,然后客户端获得访问令牌,并使用该令牌来请求用户的日历, 现在我们想要这样做,我们的应用程序获取访问令牌,将令牌上传到我们的服务器,然后服务器使用令牌请求用户的日历,最终,我们的服务器将定期使用大量不同用户的访问令牌来

  • 问题内容: 我有一个node.js Connect服务器,用于检查请求的Cookie。为了在节点中测试它,我需要一种写客户端请求并将cookie附加到它的方法。我知道HTTP请求对此具有’cookie’标头,但是我不确定如何设置和发送它- 我还需要在同一请求中发送POST数据,因此我目前正在使用danwrong的restler模块,但似乎没有让我添加该标头。 关于如何使用硬编码的cookie和PO