此前虽然对Tomcat有一些了解,但是在使用的时候总感觉云里雾里,索性趁着现在比较清闲,把Tomcat的基础知识整理一下,不足之处还请各位路过的客官多多指正。
Apache Tomcat是由Apache Software Foundation(ASF)开发的一个开源Java WEB应用服务器。
Tomcat是用Java语言编写的,需要运行在Java虚拟机上,所以一般需要先安装JDK,以提供运行环境。
Tomcat实现了几个Java EE规范,包括Java Servlet、Java Server Pages(JSP),Java Expression Language和Java WebSocket等,这些是都下载Tomcat安装包默认提供的,可以在源码中看到相关Java EE 规范API源码引用。
使用二进制包安装,下载解压并移动/usr/local/jdk1.8,然后配置环境变量:
JAVA_HOME=/usr/local/jdk1.8/
JAVA_BIN=/usr/local/jdk1.8/bin
JRE_HOME=/usr/local/jdk1.8/jre
PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin
CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar
$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz
$ tar zxvf apache-tomcat-8.5.38.tar.gz
$ mv apache-tomcat-8.5.38 /usr/local/tomcat
$ /usr/local/tomcat/bin/startup.sh
$ netstat -lntp |grep java
tcp6 0 0 :::8009 :::* LISTEN 50401/java
tcp6 0 0 :::8080 :::* LISTEN 50401/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 50401/java
$ ps -ef |grep tomcat
*.sh
用于Unix系统;/home/tomcat/apache-tomcat-8.5.38
CATALINA_BASE
属性。默认情况下,CATALINA_HOME 和 CATALINA_BASE指向相同的目录,可以通过手动配置CATALINA_BASE在同一台机器上运行多个Tomcat实例,主要有以下好处:
.jar
文件和二进制文件,因此您可以轻松地将文件升级到较新版本,并通过CATALIA_HOME目录将更改应用到所有Tomcat实例;.jar
文件;setenv shell
在开始使用CATALINA_BASE之前,首先考虑并创建CATALINA_BASE使用的目录树。请注意,如果您不创建所有推荐的目录,Tomcat会自动创建目录。如果无法创建必要的目录,例如由于权限问题,Tomcat将无法启动,或者可能无法正常运行。
CATALINA_BASE 文件结构:
CATALINA_BASE
├── bin
│ └── setenv.sh # 只放该文件
├── conf # cp CATALINA_HOME/conf/* CATALINA_BASE/conf/ ;至少含有以下两个配置文件
│ ├── server.xml
│ └── web.xml
├── lib
├── logs
├── temp
├── webapps
└── work
CATALINA_HOME 文件结构:
CATALINA_HOME
├── bin
│ └── startup.sh
│ └── shutdown.sh
├── lib
└── endorsed
CATALINA_HOME / lib
文件下,将其他库,如数据库驱动程序等添加到对应的 CATALINA_BASE / lib
目录下。Tips:一般情况下,建议Web应用程序之间的库永远不要共享,将它们放入应用程序内的WEB-INF / lib目录中。CATALINA_HOME/conf
所有文件拷贝到 CATALINA_HOME/conf
CATALINA_BASE属性是一个环境变量。您可以在执行Tomcat启动脚本之前进行设置,例如:
CATALINA_BASE=/tmp/tomcat_base1 bin/catalina.sh start
(adsbygoogle = window.adsbygoogle || []).push({});