安装
Tomcat不需要安装,直接解压到对应的目录即可,需提前解压安装JDK1.7,并配置环境变量
1 | tar xvzf apache-tomcat-7.0.68.tar.gz -C /usr/local |
配置
配置JAVA_HOME
启动的时候,启动脚本会加载setenv.sh,以下为catalina.sh截取代码
(同样会自动加载setclasspath.sh)
1 | if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then |
/usr/local/tomcat/bin/setenv.sh
1 | JAVA_HOME=/usr/local/jdk1.7.0_79 |
修改catalina.out输出路径
默认情况下catalina.out会输出到tomcat的logs目录下,可自行修改其输出路径
/usr/local/tomcat/bin/catalina.sh
1 | if [ -z "$CATALINA_OUT" ] ; then |
配置JVM
catalina.sh
1 | JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx3072m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=512m" |
- -Xms Java Heap初始值
- -Xmx Java Heap最大值
- -Xmn Java Heap Young区大小
- -Xss 每个线程的stack大小
- -XX:PermSize 永久保区域初始大小
- -XX:MaxPermSize 永久保存区初始最大值
- -XX:NewSize 设置JVM堆的新生代的默认大小
- -XX:MaxNewSize 设置JVM堆的新生代的最大大小
自定义变量
可以在catalina.sh/setenv.sh中自行定义变量,如定义一个外网IP地址用于配置Djava.rmi.server.hostname
1 | PUBLIC_IP=`/sbin/ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}' |grep -v ^10.` |
配置jmxremote
官方monitoring说明:https://tomcat.apache.org/tomcat-7.0-doc/monitoring.html
catalina.sh
1 | JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=$PUBLIC_IP -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access -Dfile.encoding=UTF-8" |
- -Dcom.sun.management.jmxremote 启动JMX远程监控
- -Dcom.sun.management.jmxremote.port=8999 使用的端口8999
- -Dcom.sun.management.jmxremote.ssl=false 不使用ssl
- -Dcom.sun.management.jmxremote.authenticate=true 远程连接需要密码认证
- -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password 指定jmx账号文件
- -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.password 指定jmx账号授权文件
在conf目录下新建jmxremote.password和jmxremote.access文件
1 | touch /usr/local/tomcat/conf/jmxremote.password |
jmxremote.access添加以下内容:
1 | monitorRole readonly |
jmxremote.password添加以下内容:
1 | monitorRole tomcat |
Tip:The password file should be read-only and only accessible by the operating system user Tomcat is running as
配置server.xml
1 |
|
配置logging.properties
根据实际情况修改输出日志路径
1 | 1catalina.org.apache.juli.FileHandler.level = FINE |
配置tomcat-user.xml
tomcat默认的webapps下有管理后台,需要配置用户才能查看运行状态和管理应用
1 |
|
启动
1 | /usr/local/tomcat/bin/startup.sh |
停止
1 | /usr/local/tomcat/bin/shutdown.sh |