首页 > 解决方案 > 如何获取 apache2 反向代理和 tomcat 服务器后面的客户端主机名?

问题描述

我在服务器apache2前用作反向代理tomcat8。我已经利用它X-Forwarded-For来查找客户端 IP 地址。

但我的目标是获得客户hostname。这有可能吗?我必须告诉apache还是tomcat?

标签: javaapachetomcatapache2reverse-proxy

解决方案


通过 http,您将获得客户端的公共 IP 地址,这可能是他们的代理,也可能是他们的 NAT 路由器。您可以使用该 IP 地址进行反向 DNS 查找,但由于客户端计算机很少有可公开寻址的 DNS 条目,因此您不会走得太远。(事实上​​,您也准确地问过这个问题并在那里得到了很好的答案)

由于这个问题专门关于hostname,而不是关于 DNS 条目,因此这个答案与您的其他问题的答案不同:

我看到访问主机名本身(类似于“John's Mac”)的唯一选择是浏览器显示它 - 例如通过 Javascript。如果浏览器允许这样做,我相信所有的广告网络都会对这种信息泄漏垂涎三尺。这就是为什么我希望您无法使用实际主机名的原因,甚至无需查找任何选项。


推荐阅读