我的虚拟主机如下:
<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 次 |
最近记录: |