Apache HTTPD 代理 - 拒绝指令被忽略

Apache HTTPD 代理 - 拒绝指令被忽略

我正在运行带有原装 Apache httpd-2.2.3 的 CentOS 5.5。

我想要设置一个代理服务器,它将转发来自单个 IP 地址(下例中为 123.123.123.123)的代理请求并拒绝来自所有其他地址的请求。

问题是 apache 通过端口 81 代理所有请求(而不仅仅是来自 123.123.123.123 的请求并拒绝所有其他流量)。

我的配置文件如下:

Listen 81
<VirtualHost *:81>
  ServerName my.server.com
  ProxyRequests On
  ProxyVia On
  <Proxy *:81>
    Order Deny,Allow
    Deny from all
    Allow from 123.123.123.123
  </Proxy>
  ErrorLog /var/log/httpd/proxy-error.log
  TransferLog /var/log/httpd/proxy-transfer.log
  LogLevel debug
</VirtualHost>

这是唯一一个引用端口 81 的配置文件。端口 80 上的流量不允许正向代理(它为网站提供服务)。当我通过 curl/Firefox 代理发出这些请求进行测试时,我肯定不在 IP 地址 123.123.123.123 上。

注释掉“允许来自 123.123.123.123”没有什么区别 - 此时它应该简单地拒绝所有到端口 81 的流量。

有人能告诉我如何修复上述配置文件以提供请求的行为吗?

答案1

该块的匹配字符串针对<Proxy>的是所请求的资源,而不是服务器的侦听器。

尝试<Proxy *>代替<Proxy *:81>

相关内容