我的外围networking上configuration了一个Apache2服务器作为反向代理服务器。
有很多使用ProxyPas指令configuration的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地址。
有一种方法可以使用configuration为反向代理的Apache的IP ACL?
谢谢
您可以使用:反向代理请求头( 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