我的虚拟主机如下:
<VirtualHost *:80>
ServerName somename.com
<Proxy *>
order deny,allow
Deny from 65.74.5.130
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass / http://0.0.0.0:8890/
ProxyPassReverse / http://0.0.0.0:8082/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我放在该Proxy部分的 IP没有被阻止。我不理解正确的拒绝/允许顺序吗?或者我需要使用其他一些指令吗?
你的order指令是错误的。
Order指示 apache 如何评估allow和deny指令。在deny,allow配置中,您首先指定拒绝的来源,然后将例外(允许的来源)指定到拒绝列表中。
由于您禁止的 IP 与这两个指令匹配,因此您将其作为拒绝规则的例外引入,允许其自由访问。
使用order allow,deny具有相同deny和allow指令,你必须限制其访问:
<VirtualHost *:80>
ServerName somename.com
<Proxy *>
order allow,deny
Deny from 65.74.5.130
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass / http://0.0.0.0:8890/
ProxyPassReverse / http://0.0.0.0:8082/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
注意:中的最后一个参数order设置默认操作,如果两者都deny没有allow找到匹配项,因此xxxx from all没有必要使用 a ,但大多数人喜欢明确设置它。
这是等效的:
order allow,deny
Deny from 65.74.5.130
Allow from all
Run Code Online (Sandbox Code Playgroud)
65.74.5.130匹配allow和deny,应用顺序(第一个允许,最后一个拒绝),它将拒绝访问。allow,因此它将允许访问。对此:
order deny,allow
Deny from 65.74.5.130
Run Code Online (Sandbox Code Playgroud)
65.74.5.130仅匹配deny,因此拒绝访问allow或deny,因此它将采取默认操作allow,允许访问。| 归档时间: |
|
| 查看次数: |
6260 次 |
| 最近记录: |