mob*_*mad 7 reverse-proxy apache-2.2
使用以下代码段,每个人都可以访问 /foo 和 /bar
ProxyPass /foo http://example.com/foo
ProxyPassReverse /foo http://example.com/foo
ProxyPass /bar http://example.com/bar
ProxyPassReverse /bar http://example.com/bar
Run Code Online (Sandbox Code Playgroud)
但是,如果我希望每个人都可以访问 /foo,而 /bar 仅适用于来自特定 IP 的请求,这可能吗?
小智 5
答案应该如下。对于需要允许整个子网而不是一组单个 IP 的用户,我在一个规则中包含了一个 IP 和一个子网。
<Location /foo>
Deny from all // **This rule is the most IMPORTANT**
Allow from 192.168.1.2 10.100 // The second value implies 10.100.0.0/16 subnet
ProxyPass http://example.com/foo
ProxyPassReverse http://example.com/foo
</Location>
Run Code Online (Sandbox Code Playgroud)
我认为您可以使用SetEnvIf指令检查远程地址(Remote_Addr)。
拥有一个IP:
SetEnvIf Remote_Addr "123.123.123.123" TRUST=yes
Run Code Online (Sandbox Code Playgroud)
使用正则表达式检查多个IP
SetEnvIf Remote_Addr "123\.123\.123\.123|134\.134\.(134\.(134|134)|134\.134)" TRUST=yes
Run Code Online (Sandbox Code Playgroud)
我不确定你可以直接这样做:
ProxyPass /foo http://example.com/foo env=TRUST
Run Code Online (Sandbox Code Playgroud)
但也许您可以使用重写规则并获得相同的结果......
例如,您可以将所有不受信任的 IP 重写到特定页面 ( env=!TRUST)
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
24775 次 |
| 最近记录: |