Apache ProxypassMatch 配置为仅匹配来自自身(127.0.0.1)的请求

Apache ProxypassMatch 配置为仅匹配来自自身(127.0.0.1)的请求

这就是我现在的情况。我试图仅允许/执行来自本地主机的请求的代理,这意味着其他任何人都不能访问 /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>

相关内容