我有一个有趣的问题。我的公司正在为客户端托管一个小型应用程序服务器,并且他们希望将访问权限限制为少数几个IP。客户是一个拥有多个部门的大公司,每个部门都有自己的网络结构。Apache允许/拒绝IP正则表达式
我不会深入细节,但是由于我公司的Web服务器的内部结构,我们不能在Apache中使用传统的允许,拒绝语法。我们有负载均衡器转发到Web服务器,然后转发到应用服务器本身。相反,我们在我们的Apache配置中使用类似以下的内容:
RewriteCond %{HTTP:X-Forwarded-For} !^213.212.45.54
我们利用X-Forwarded-For头来匹配外部IP。问题是我们客户的一个部门(称为部门A)的互联网设置需要通过内部代理。他们的内部代理将每个用户的工作站IP转发给我们的Web服务器。这意味着,这些用户的X - 转发,对于头看起来是这样的:
10.123.16.23, 213.212.45.54, 172.20.162.2
的10个地址在其网络中每个用户的工作站IP,213是该部门的广域网IP,和172是我公司的负载均衡器。
我的公司已经确认,如果我们将用户的工作站IP添加到Apache配置中,他们可以毫无问题地访问该页面。但是,添加每一个IP将是单调乏味的。
有没有办法告诉Apache只关注使用正则表达式的中间IP(WAN IP)?还是有更好的方法来配置Apache?
也许这将帮助你指明正确的方向,正则表达式 中,\ s *(213 \。\ d + \。\ d + \。\ d +)\ s *, 比赛和返回中间IP 213.212.45.54 所以你可以用它来触发你的RewriteRule。 – 2012-01-09 06:32:33