【问题标题】:Apache reverse proxy with mod_remoteip带有 mod_remoteip 的 Apache 反向代理
【发布时间】:2012-10-15 14:46:01
【问题描述】:

我已配置 apache(2.4 版)反向代理以在我们的网站上发布安装在内部服务器中的应用程序。一切正常,这些是我在 proxy-html.conf 中添加的行:

ProxyPass /app/bpv0SOCPOkqptPqO6XsIvucLzO7QXJyA/ http://srvacg:9081/acgv4/

如果我写这个 url http://www.mysite.com/app/bpv0SOCPOkqptPqO6XsIvucLzO7QXJyA/ 我可以登录我的内部应用程序,我可以使用它。

问题是我的应用程序检查客户端的 IP 地址,并且同一时间只允许 1 个连接。配置反向代理后,所有连接都使用安装 apache 的服务器的私有 IP 完成。

我试图用 mod_remoteip 来解决这个问题:

RemoteIPHeader X-Forwarded-For

但结果总是一样的。这是apache访问日志:

REMOTE-IP: %a - LOCAL-IP: %A | X-Forwarded-For: %{X-Forwarded-For}i | h: %h | UNDERLYING CLIENT IP: %{c}a |

REMOTE-IP: 217.57.XXX.XXX - LOCAL-IP: 192.168.89.3 | X-Forwarded-For: 217.57.XXX.XXX | h: 217.57.XXX.XXX | UNDERLYING CLIENT IP: 217.57.XXX.XXX |

217.57.XXX.XXX是客户端ip,192.168.89.3是内部ip,是我的应用收到的ip。我不知道它是如何获得这些信息的。

谁能帮帮我?

【问题讨论】:

  • 也许您可以针对这种情况简单地扩展您的应用程序?如果存在 X-Forwarded-For 标头,请检查该 ip 地址而不是正常请求 ip?
  • Arkasha,对不起,我不能。该应用程序是一个管理软件,我不能动手!谢谢
  • 好的,无论“管理软件”是什么,我都知道您无法详细修改其行为。我认为不可能用初始化客户端地址替换代理服务器 IP 地址。虽然它可能能够伪造(或“构建”)这样的包:希望你的防火墙会阻止这样的请求,因为它们似乎来自外部 IP 地址......

标签: apache proxy reverse proxypass


【解决方案1】:

如果您不能根据您的要求修改该应用程序,那么也许您可以包装它?

如果您可以安装一个额外的应用程序,一个简单的包装器,而不是一个简单的脚本,那么您可能能够构建一个解决方法:配置代理服务器以将所有请求转发到该包装器而不是“真正的”内部应用程序.然后包装器可以代表代理服务器发出内部请求,以代理(或客户端)的方式请求“真实”应用程序并转发回复。优点:您可能能够构造一个看似源自原始远程客户端 IP 的请求,包装器可以将其视为代理服务器添加的附加标头。由于从包装器到“真实”应用程序的请求是系统内部的,因此没有包通过网络移动,因此防火墙无法阻止任何内容。

我没有尝试过,但这可能是一种解决方法......

【讨论】:

    【解决方案2】:

    由于某些原因,mod_remoteip 不适用于我的实现。

    相反,在 Apache 2.4 上测试过,我发现这是可行的。

    对于 httpd.conf 尝试搜索 所在的部分并将 CustomLog 语句替换为:

    LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
    CustomLog "logs/access.log" proxy
    

    LogFormat 语句创建一个名为 proxy 的自定义日志格式,它使用代理转发的环境变量 X-Forwarded-For 作为远程 IP 地址的来源真正的客户。

    CustomLog 语句只是使用自定义日志格式“代理”将结果写入“access.log”,而现在出现的是真实 IP 地址。

    【讨论】:

    猜你喜欢
    • 2013-11-18
    • 1970-01-01
    • 2023-03-23
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多