2017-06-14 76 views
0

我是新来的apache很抱歉,如果这是一个新手问题。我有一个反向代理建立(和工作),用下面的代码,其中包括一个工作认证:Apache认证的IP地址

<VirtualHost *:80> 

ServerAdmin [email protected] 
DocumentRoot /var/www/html 

ProxyPass /PIZZA/ http://localhost:3636/PIZZA/ 
ProxyPassReverse /PIZZA/ http://localhost:3636/PIZZA/ 
ProxyPreserveHost On 

<Location /PIZZA/> 
AuthUserFile /etc/USER_PWD/PIZZA_PWD 
AuthName "Password Protected" 
AuthType Basic 
require valid-user 
</Location> 

</VirtualHost> 

上述认证工作,如果我去做我的/比萨/ URL。但是,如果我输入相同url的源IP地址(例如:192.168.1.11:3636/PIZZA/),网页加载时不需要验证。

我的问题,有没有一种方法来验证特定的源IP地址?像下面这样(不起作用)?

<Location http://192.168.1.11:3636/PIZZA/> 
AuthUserFile /etc/USER_PWD/PIZZA_PWD 
AuthName "Password Protected" 
AuthType Basic 
require valid-user 
</Location> 

任何帮助将非常感激。谢谢!

+0

您不希望在侦听端口3636的后端服务器中实施额外的身份验证。您只是想要阻止对该端口的所有请求,这些请求会在网络级别从系统本身执行_not_ original。因此,请使用您的 网络包过滤器(“防火墙”)。 – arkascha

回答

0

感谢您的回复。这可能是尝试执行第二次身份验证的菜鸟错误。

Arkascha - 你的回答指向了我正确的方向,并且我得到了它的工作。我基本上阻止了对防火墙端口的访问,并且工作。

如果没有你指出我正确的方向,我永远都不会想到这一点,所以谢谢!

0

在第二种情况下,你甚至没有访问Apache,所以没有任何Apache配置会有什么不同。如果您希望后端服务器只接受来自您的代理服务器的连接,则必须适当地配置后端服务器(或者指望通过TCP无法访问)