Tomcat 简介
Tomcat 目录结构
- bin 执行脚本,启动jar包
- conf 配置文件
- lib Tomcat 的运行库和 JSP/Servlet API
- logs 默认日志目录
- temp 临时目录
- webapps Web Application 目录
- work 运行时目录,比如由 JSP 编译的 class
Tomcat 启动脚本
catalina.(sh|bat) 是 Tomcat 启动的核心脚本,startup.(sh|bat) 和 shutdown.(sh|bat) 都是调用该脚本启动和停止 Tomcat 的。
从脚本中可以看到,有一些常用的环境变量可以影响到启动和停止的过程:
- CATALINA_HOME Tomcat 的安装目录,就是下载后解压的文件路径。
- CATALINA_BASE 这个算是 Tomcat 的运行实例路径,默认和 CATALINA_HOME 一致,但是如果期望运行多个 Tomcat 实例,可以用同一个 CATALINA_HOME,但是指定不同的 CATALINA_BASE 为实例配置目录。该目录下要包含配置文件 conf,一般会把日志目录 logs、临时目录 temp、Web Application 目录 webapps、运行时目录 work 也可以配置在 CATALINA_BASE 里面,但是脚本目录 bin 和运行库 lib 是不需要的。
- CATALINA_OPTS 优化参数,比如堆大小,GC,JMX等都可以在这里配置,一般这些优化是专门针对Tomcat的
- CATALINA_TMPDIR Tomcat 的临时目录,而非 Java 的临时目录,默认就是 CATALINA_BASE/temp
- JAVA_HOME 如果需要 debug Tomcat,就要指向 JDK,否则指向 JRE,Tomcat也能运行。
- JRE_HOME 这个就是指定 JRE 啦.
- JAVA_OPTS Java 优化参数,因为 JAVA_OPTS 还会被其他的 Java 程序所使用,因此 JAVA_OPTS 算是一个全局的环境变量,如果想配置仅仅针对 Tomcat 的,还是用 CATALINA_OPTS 吧。
- JAVA_ENDORSED_DIRS 指定 Java endorsed 目录,Java Endorsed 是 Java 的 API 库覆盖的机制,就是可以用其它的三方实现来代替 JDK 包含的默认实现,详见 Java Endorsed Standards Override Mechanism。默认目录在 CATALINA_HOME/endorsed,默认安装是没有这一目录的,新建一个就行。
- JPDA_TRANSPORT JPDA 的通讯机制,默认是 dt_socket。
- JPDA_ADDRESS JPDA 的通讯地址及端口 ,默认是localhost:8000.
- JPDA_SUSPEND JPDA 的中断策略,是否在刚刚启动的时候就暂停,默认是 n。
- JPDA_OPTS JPDA 的全部配置参数,设置之后 JPDA_TRANSPORT,JPDA_ADDRESS和JPDA_SUSPEND全部失效。
- LOGGING_CONFIG 覆盖 Tomcat 默认的日志配置文件,比如 LOGGING_CONFIG=”-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties”
- LOGGING_MANAGER 覆盖 Tomcat 默认的日志管理类,比如 LOGGING_MANAGER=”-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager”
Tomcat 配置文件
catalina.policy
Tomcat 的 Security Policy Permissions 配置文件,具体可参考Default Policy Implementation and Policy File Syntax