tomcat 访问权限设置

时间:2024-04-16 08:58:02

1.全局设置,设置允许某些IP能够访问到tomcat服务器,或不能访问tomcat服务器

只需要编辑tomcat的server.xml,增加适当代码即可。
修改如下:
在<Host>  </Host>  之中添加以下代码
1,只允许192.168.1.10访问:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10" deny=""/>


2,只允许192.168.1.*网段访问: <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>

3,只允许192.168.1.10192.168.1.30访问: <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.30" deny=""/>

 

根据主机名进行限制:

<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="abc.com" deny=""/>

 

2.部分设置
例如我们有一个名为webapps/myapp的虚拟目录。
设置这个myapp实例的访问权限
用文本编辑器打开tomcat的 server.xml配置文件,在<Host>  </Host>  之中添加以下代码添加代码如下:
 
<context path=”/myapp” reloadable=”truedocBase=”/var/www/myapp”>
    <valueclassName=”org.apache.catalina.values.RemoteAddrValue”
        allow=”127.0.0.1” deny=”″ />
</context>

 这样只允许本机  127.0.0.1这个地址   访问  xxx.xxx.xxx.xxx:8080/myapp

 
 
在context中  path是访问路径    docBase是你文件的位置
 <Context path="/core/production" reloadable="true" docBase="core/production">
   <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="10.0.7.99|10.0.7.9" deny=""/> 
 </Context>

这个实例中  只要10.0.7.99|10.0.7.9 这两个ip可以访问  xxx.xxx.xxx.xxx:8080/core/production

而这个访问路径的实际访问位置是core/production

要限制 多个ip的可以使用正则;或者可以用  ,   或者  |     作为分隔(tomcat版本不同)。

1. 在tomcat 5.5之前

path:        即要建立的虚拟目录 指定访问该Web应用的URL入口,如:http://127.0.0.1:8080/helloApp1。 

docBase: 指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性的相对路径,

                如果Web应用采用开放目录结构,则指定Web应用的根目录,
                如果Web应用是个war文件,则指定war文件的路径。

reloadable    :如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,
                       如果监测到有class文件被更新的,服务器会自动重新加载Web应用。

                      在开发阶段将reloadable属性设为true,有助于调试servlet和其它的class文件,但这样用加重服务器运行负荷,
                       建议在Web应用的发布阶段将reloadable设为false。

 

2. 在tomcat 5.5之后
         不推荐在server.xml中进行配置,而是在/conf/context.xml中进行独立的配置。因为 server.xml 是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。
         而 context.xml 文件则不然, tomcat 服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器 。
<Context path="/kaka" docBase="kaka" debug="0" reloadbale="true" privileged="true">  
<WatchedResource>WEB-INF/web.xml</WatchedResource>  
<WatchedResource>WEB-INF/kaka.xml</WatchedResource>   监控资源文件,如果web.xml || kaka.xml改变了,则自动重新加载改应用。  
<Resource name="jdbc/testSiteds"                      表示指定的jndi名称  
auth="Container"                                      表示认证方式,一般为Container  
type="javax.sql.DataSource"  
maxActive="100"               连接池支持的最大连接数  
maxIdle="30"                  连接池中最多可空闲maxIdle个连接  
maxWait="10000"               连接池中连接用完时,新的请求等待时间,毫秒  
username="root"               表示数据库用户名  
password="root"               表示数据库用户的密码  
driverClassName="com.mysql.jdbc.Driver"         表示JDBC DRIVER  
url="jdbc:mysql://localhost:3306/testSite" />   表示数据库URL地址  
</Context>