如何让真实 IP(不是 127.0.0.1)在 httpd 中转发请求时显示为远程 IP

如何让真实 IP(不是 127.0.0.1)在 httpd 中转发请求时显示为远程 IP

我在 tomcat 前面有一个 httpd 服务器。两个服务都在同一台机器上运行。

该机器有2个IP地址,并且我有绑定到不同IP的域名。

在 tomcat 的访问日志中,所有远程 IP 地址都显示 127.0.0.1。我认为这是因为 tomcat 只知道该请求来自一个标识自己 IP 为 127.0.0.1 的客户端,并且该客户端实际上是 Apache。

有没有什么方法可以让 Apache 通过域名绑定的实际 IP 来识别自己?

编辑:一个稍长的故事......

我实际上想做的是确定请求是来自我们的内部网络还是来自互联网。我们有 2 个主机名,它们解析为 2 个不同的 IP 地址。其中一个地址在互联网上可见,另一个则不可见。我希望能够确定用户实际在浏览器中输入了哪个 IP/URL,并使用它来禁用我们不希望从内部网外部访问的某些功能。

干杯,彼得

答案1

Tomcat 需要支持X-Forwarded-For标头(Apache 使用 rpaf 模块实现此目的),并且 httpd(我猜是 Apache)需要为您设置该标头。

顺便说一句,如果使用代理,使用 Nginx 不是更好吗?

相关内容