我已配置apache(2.4版)反向代理在我们的网站上发布安装在内部服务器中的应用程序。一切工作正常,这些都是我在代理html.conf添加行:Apache反向代理与mod_remoteip
ProxyPass /app/bpv0SOCPOkqptPqO6XsIvucLzO7QXJyA/ http://srvacg:9081/acgv4/
如果我写这篇文章的网址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? – arkascha
Arkasha,对不起但我不能,应用程序是一个管理软件,我不能把它放在它!谢谢 – fonta7
好吧,无论“管理软件”是什么,我明白你无法修改它的行为细节。通过初始化客户端地址来替换代理服务器的IP地址是不可能的,虽然它可能能够伪造(或“构建”)这样的包:希望你的防火墙会阻止这样的请求,因为它们似乎来自外部IP地址... – arkascha