Uri*_*ets 5 proxy ip restrictions apache-2.2
我有需要限制特定 IP (10.0.0.5) 访问的 URL。当我以下一种方式直接访问时,它工作得非常完美:
<Location /incoming>
Order Allow,Deny
Deny from 10.0.0.5
Allow from all
</Location>
Run Code Online (Sandbox Code Playgroud)
但是,当此 IP 来自代理(代理 IP:192.168.1.43)时,此解决方案不起作用。这是我在日志中看到的:
10.0.0.5, 192.168.1.43 - - [24/May/2017:16:03:54 +0300]“POST /传入 HTTP/1.0”200 698 0/6899“-”“-”
我尝试执行下一步 - 添加代理部分:
<Proxy /incoming >
Order Allow,Deny
Deny from 10.0.0.5
Allow from all
</Proxy>
Run Code Online (Sandbox Code Playgroud)
这也没有帮助。
我需要你的帮助,朋友们!!!
如果代理设置了 X-Forwarded-For 标头,您应该能够使用它:
<Location /incoming>
Order Deny,Allow
SetEnvIf X-Forwarded-For "10.0.0.5" DenyAccess
Deny from env=DenyAccess
</Location>
Run Code Online (Sandbox Code Playgroud)
Order Deny,Allow是默认允许指令,除非拒绝规则匹配,否则将授予访问权限。SetEnvIf 根据 X-Forwarded-For 的值有条件地设置环境标志。仅当设置了该标志时,此处的一个拒绝规则才会触发。如果没有触发拒绝规则,则允许访问。
您还可以引用块env中的标志Require,如此处所示。
| 归档时间: |
|
| 查看次数: |
9299 次 |
| 最近记录: |