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

如何在服务类型为ClusterIP的Kubernetes中获取客户端IP地址

相化
2023-03-14

我有在Kubernetes中具有集群IP的服务,并使用nginx(https://github.com/helm/charts/tree/master/stable/nginx-ingress)将这些服务公开到Internet。当我尝试在应用程序中获取客户端IP地址时,我获取的是集群的节点IP。如何检索实际的客户端IP?

nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-headers: "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,X-Forwarded-For,csrf-token"
nginx.ingress.kubernetes.io/cors-allow-origin: "https://example.com"

但是,还是不行。请指教!

共有1个答案

越伟泽
2023-03-14

不幸的是,这在今天是不可能的。有关这方面的更多讨论,请参见https://github.com/kubernetes/kubernetes/issues/67202和https://github.com/kubernetes/kubernetes/issues/69811。

如果要获取客户端IP地址,则需要使用nodeportloadbalancer类型。

 类似资料:
  • 问题内容: 我正在使用JAX-WS,但是在检索消耗Web服务的客户端信息时遇到问题。我已经找到了如何使用JAX-RPC和Apache Tomcat Axis(而不是JAX-WS)来做到这一点。有人对此有想法吗? 问题答案: 那这个呢:

  • 问题内容: 我正在尝试开发一个Java Web应用程序(Servlet),该服务器需要获取客户端IP地址。 以下是我到目前为止的代码: 在大多数情况下,我会得到“默认网关地址”(147.120.1.5)。不是我的机器IP地址(174.120.100.17)。 在大多数情况下,我会得到“默认网关地址”(147.120.1.5)。不是我的机器IP地址(174.120.100.17)。 在这种情况下,我

  • 问题内容: 我正在尝试在Laravel中获取客户端的IP地址。 使用可以很容易地在PHP中获得客户端的IP 。在核心PHP中它可以正常工作,但是当我在Laravel中使用相同的东西时,它将返回服务器IP而不是访问者的IP。 问题答案: 查看Laravel API: 在内部,它使用Symfony Request对象中的方法:

  • get_client_ip($type = 0, $adv = false) 功能 获取客户端IP地址 参数 $type: string 返回类型 0 返回IP地址 1 返回IPV4地址数字 $adv: boolean 是否进行高级模式获取(有可能被伪装) 返回 string 客户端IP地址

  • 问题内容: 在Node.js服务器中使用socket.IO时,是否有一种简单的方法来获取传入连接的IP地址?我知道您可以从标准的HTTP连接中获得它,但是socket.io有点不同。 问题答案: 好的,从0.7.7版本开始可用,但是不像lubar所描述的那样。我最终需要通过git hub上的一些提交日志来解析该问题,但是下面的代码现在确实对我有用:

  • 问题内容: 我已经在项目中编写了Rest Web服务.Web服务调用可能来自其他计算机。因此我需要通过REST Web服务来查找IP地址。 通过此链接 request.getRemoteAddr() 来使用它。 但是我不能使用getRemoteAddr()。因为我的请求和响应都是xml格式。 我在REST服务.Tomcat服务器中使用了post方法。我已将请求发送为xml格式。 我如何获得IP地址