• 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}confproj_1.xml
    2,直接在server.xml中进行设置${tomcat_root}confserver.xml
    在上述文件对应项目的</Context>前增加下面一行:

    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>
    特别需求:测试版本不想提供别人访问
    打开tomcat6confserver.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: omcat6webappsmyweb">
    <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升效

  • 相关阅读:
    使用 Fiddler2 进行接口测试的方法
    [cpyhon源代码]dict对象原理学习
    python PEPs-KEY
    python PEP1-总纲
    Python 容器的可变性
    Python源码分析:PyObject对象的起源与多态的实现
    python源码分析:dict对象的实现
    【ShadowsSocks】相关知识汇总
    python str函数isdigit、isdecimal、isnumeric的区别
    python 核心编程 第七章习题
  • 原文地址:https://www.cnblogs.com/cuishuai/p/8073588.html
Copyright © 2020-2023  润新知