tomcat常用配置

在生产环境中tomcat内存设置不好很容易出现jvm内存溢出。
 
1、 linux下的tomcat: 
修改TOMCAT_HOME/bin/catalina.sh
位置cygwin=false前。
 JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m"
 JAVA_OPTS="-server -Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"
 
 
 2、配置tomcat将session保存到redis中:
 
 在context.xml配置(Valve标签一定要在Manager标签前面):
 <Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
 <Manager className="com.radiadesign.catalina.session.RedisSessionManager"
          host="192.168.0.150"     #redis服务器的IP地址
    port="6379"
    database="0"
    maxInactiveInterval="60" />
   
3、修改tomcat-user.xml
    <role rolename="manager-gui"/>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <role rolename="admin-gui"/>
  <user username="admin" password="admin" roles="admin-gui,admin,manager-gui,manager"/>

4、server.xml
   <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="800" minSpareThreads="50"/>
   <Connector port="8080"
  protocol="HTTP/1.1"
  maxHttpHeaderSize="8192"
  maxThreads="1000"
  minSpareThreads="100"
  maxSpareThreads="1000"
  minProcessors="100"
  maxProcessors="1000"
  enableLookups="false"
  compression="on"
  compressionMinSize="2048"
  compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
  connectionTimeout="20000"
  URIEncoding="utf-8"
  acceptCount="1000"
  redirectPort="8443"
  disableUploadTimeout="true"/>
 
5、tomcat7在一台机器起上启动多个tomcat实例:
  !注意修改server注意修改server.xml中的8080、8005、8009三个端口
  tomcat8的不同,还需要改的,
  !如果启动时报错:ERROR:transport error 202:bind faild :Address already used
   解决方式:注释掉catalina.sh中的declare项,一般在第一行。注释掉或者将Address的
   8000改成不同的端口。
  
6、如果将tomcat下的tmp目录删除了,或tomcat启动时停在ROOT处,不能正常启动。
解决方式:vim  catalina.sh
CATALINA_OPTS='-Djava.security.egd=file:/dev/./urandom'

 

如果想要全局使用上述的修改,可以修改java的配置文件:$JAVA_HOME/jre/lib/security/java.security

securerandom.source=file:/dev/./urandom

7、java环境配置,添加到 /etc/profile的最后面
JAVA_HOME=/usr/local/java
JRE_HOME=/usr/local/java/jre
JAVA_BIN=/usr/local/java/bin
JRE_BIN=$JRE_HOME/bin
PATH=$PATH:$JAVA_BIN:$JRE_BIN
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JRE_HOME JRE_BIN JAVA_BIN PATH CLASSPATH

8、使用jmx监控tomcat
   CATALINA_OPTS="-Dcom.sun.management.jmxremote
   -Dcom.sun.management.jmxremote.authenticate=false
   -Dcom.sun.management.jmxremote.ssl=false
   -Djava.rmi.server.hostname=172.17.164.155
   -Dcom.sun.management.jmxremote.port=12358"

9、一、全局设置,对Tomcat下所有应用生效
server.xml中添加下面一行,重启服务器即可:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>
此行放在</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.10、192.168.1.30访问:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.30" deny=""/>
4,根据主机名进行限制:

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

 

10、开启tomcat远程调试端口

首先检查要使用的端口是否被占用:

#lsof -i:8899

没有输出,则证明没有被占用。

在startup.sh里面添加如下配置:

declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899" 

重启服务生效。

 


二、局部设置,仅对具体的应用生效
根据项目配置情况进行设置:
1,使用conf目录下xml文件进行配置${tomcat_root}\conf\proj_1.xml
2,直接在server.xml中进行设置${tomcat_root}\conf\server.xml
在上述文件对应项目的</Context>前增加下面一行:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>
特别需求:测试版本不想提供别人访问
打开tomcat6\conf\server.xml文件
如果是要限制整个站点别人不能访问,则要将
<Valve className="org.apache.catalina.valves.RemoteAddrValve"  allow="192.168.1.*,192.168.2.*,*.mysite.com" deny=""/>
加入到<HOST></HOST>标签中
如果是要限制某个站点不能被访问,则要加入到<Context>里面就可以。

<Context path="/myweb" reloadable="true" docBase="E:\tomcat6\webapps\myweb">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.13.110,192.168.1.*,220.250.13.21" deny=""/>
</Context>
 
RemoteHostValve
根据主机名进行限制:
<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="tmachine1" deny=""/>

修改文件:

tomcat/conf/server.xml

通过tomcat限制ip访问
<Engine name="Standalone" ...>
<Valve className="org.apache.catalina.valves.RemoteHostValve"
         allow="*.mycompany.com,*.a.com"/> 域名限制
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         deny="192.168.1.*"/> IP限制
</Engine>
重启tomcat升效

posted @ 2017-12-20 14:31  诗码者  阅读(905)  评论(0编辑  收藏  举报