这就是我现在的情况。我试图仅允许/执行来自本地主机的请求的代理,这意味着其他任何人都不能访问 /ha_proxy 并被定向到 169.25 IP。有办法吗?
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerExpire off
ProxyTimeout 3600
ProxyPassMatch "^/ha_proxy/([0-9])/(.*)$" "https://169.25.0.$1:43/$2"
ProxyPassMatch "^/manager_proxy/(.*?)/(.*)$" "https://$1/$2"
ProxyPassMatch "^/rest_proxy/(.*)$" "https://127.0.0.1:9/$1"
答案1
我管理 Apache 服务器已经有一段时间了,但我认为您可以使用下面的位置标签来指定路径。选择拒绝所有地址,然后允许回送地址。
<Location /foo>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
ProxyPass http://example.com/foo
ProxyPassReverse http://example.com/foo
</Location>
我在手机上写这篇文章,所以我从其他地方复制了一个示例,而不是复制你的代码。你可以在位置标签之间添加你的配置,并使用正则表达式的 LocationMatch,如此处所述位置匹配. 希望有帮助。
答案2
事实上,我之前粘贴的内容在 Apache 2.4 中发生了变化。如果从本地主机向 Apache 发送请求,下面的操作应该可以工作。
<Location /foo>
Require local
ProxyPass http://example.com/foo
ProxyPassReverse http://example.com/foo
</Location>
或者您可以使用下面的方法:
<Location /foo>
Require ip 127.0.0.1
ProxyPass http://example.com/foo
ProxyPassReverse http://example.com/foo
</Location>