Apache2:如何使用 ProxyPass 限制对特定 IP 的访问?

Apache2:如何使用 ProxyPass 限制对特定 IP 的访问?

我在我的外围网络上将 Apache2 服务器配置为反向代理。

有很多使用ProxyPas指令配置的VirtualHost。

对于特定的,我想限制对特定 IP 地址的访问。

以下是一个例子:

<VirtualHost 192.168.0.1:80>
    ServerAdmin [email protected]
    ServerName sub.domain.com
    ServerAlias sub.domain.com
    ProxyPass / http://internal.domain.com:80/
    ProxyPassReverse / http://internal.domain.com:80/
    CustomLog /var/log/apache2/my_log combined
    HostnameLookups Off
    ProxyPreserveHost On
    UseCanonicalName Off
    ServerSignature On
    ProxyRequests Off
</VirtualHost>

我尝试添加这个:

<Proxy *>
    Order deny,allow
    Deny from all
    Allow from 192.168.0.100
</Proxy>

但不起作用,因为反向代理不保留远程 IP 地址。

有没有办法将 IP ACL 与 Apache 配置为反向代理?

谢谢

答案1

您可以使用以下方法完成此操作:反向代理请求标头 ( X-Forwarded-For)

教程:Apache 2.4 作为反向代理 - LeaseWeb 实验室- 涵盖第二点。

为了mod_proxy

LogFormat "%v %{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" pro
xy
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded

相关内容