1.特点
◆ 必须是采用apache + tomcat标准配置的站群管理系统
◆ 控制的是整个站点,而不是站点的某部分内容
◆ 各个站点的控制是独立的,不会相互影响。不同的站点可以设置不同的IP范围,即可以在某些站点加上限制,而某些站点不加限制
◆ 采用的是apache与tomcat本身的机制,对性能不会有影响
◆ 可以分别设定允许的IP范围和禁止的IP范围
◆ 被限制的IP访问站点时,会显示403禁止访问的信息
2.方法
首先要说明的是
◆ 需要分别针对apache和tomcat进行设置,以保证对动静态页面的设置保证。
◆ 修改前要先将站群管理系统的服务管理器退出,然后进入windows的服务管理里面停掉相应的服务,apache和tomcat都站群管理系统中apache和tomcat。
◆ 修改配置文件前请注意备份。
◆ 修改完成后需再启动服务检验是否正常
1.1. Apache的设置
打开站群管理系统中自带的apache中配置文件httpd.conf;
如果你要修改的是默认站点,那么请查找到以下内容 (注意:要用正斜杠/)
<Directory "站群管理系统安装路径/defaultdomain/ROOT">
#
# Possible values for the Options directive are "None", "All",
…
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
…
AllowOverride None
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>
如果你要修改的是虚拟域名站点,请在文件里添加以下内容。
<Directory "站群系统安装路径/owners/站点帐号">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
参数说明
Order 指令:
控制缺省的访问状态和Allow与Deny指令被评估的顺序。
Deny,Allow
Deny指令在 Allow指令之前被评估。缺省允许所有访问。 任何不匹配Deny指令或者匹配 Allow指令的客户都被允许访问服务器。
Allow,Deny
Allow指令在 Deny指令之前被评估。缺省禁止所有访问。 任何不匹配Allow指令或者匹配 Deny指令的客户都将被禁止访问服务器。
Allow指令:
影响哪些主机可以访问服务器的一个区域。可以用主机名、IP地址、 IP地址范围或者其他环境变量中捕获的客户端请求特性来对访问进行控制。
完整的IP地址
例子:Allow from 10.1.2.3
允许一个主机的一个IP地址访问。
部分IP地址
例子:Allow from 10.1
IP地址的开始1到3个字节,用于子网限制。
网络/掩码对
例子:Allow from 10.1.0.0/255.255.0.0
一个网络a.b.c.d,和一个掩码w.x.y.z。用于更精确的子网限制。
网络/nnn 无内别域间路由规格
例子:Allow from 10.1.0.0/16
同前一种情况相似,除了掩码由nnn个高位字节构成。
如果有多组规则,可以加上空格后写在一起,如
Allow form 10.1.2.3 10.1.2.4
还有一个Deny指令
控制哪些主机被禁止访问服务器,规则同上
1.2. Tomcat的设置
打开站群管理系统中自带的tomcat中server.xml文件。
如果你要修改的是默认站点,那么请查找到以下内容
<Host name="localhost" debug="0" appBase="站群系统安装目录/defaultdomain" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
如果你要修改的是虚拟域名站点,那么请查找到以下内容
<Host name="虚拟域名" ownername="站点帐号 " debug="0" appBase="站群系统安装目录/owners/站点帐号 " unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
在下面一行添加以下内容
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="" deny=""/>
参数说明
className:
实现的Java类名,必须设置成org.apache.catalina.valves.RemoteAddrValve.
allow:
用逗号分开的一串正则表达式,客户端的IP地址与这些正则表达式进行比较。如果指定了这个属性,客户端的地址必须匹配这些表达式,其请求才会被处理。如果没有指定这个属性,所有的请求都被接受,除非客户端地址匹配了一个deny模式。
deny:
用逗号分开的一串正则表达式,客户端的IP地址与这些正则表达式进行比较。如果指定了这个属性,客户端的地址一定不能匹配这些表达式,其请求才会被接受。如果没有指定这个属性,仅仅由"accept“属性决定是否接受这个请求。