我正在运行带有原装 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>
。