目录
一、官网下载tomcat
下载地址:Apache Tomcat® - Welcome!
二、上传并解压tomcat
下载成功后使用FTP工具将tomcat上传到服务器,执行命令解压tomcat
tar -zxvf apache-tomcat-9.0.56.tar.gz
三、重命名tomcat并将其移动到指定目录
# 重命名tomcat
mv apache-tomcat-9.0.56 tomcat-web
# 把tomcat移动到/usr/local目录下
mv tomcat-web/ /usr/local/
四、启动tomcat
# 进入tomcat的bin目录下
cd /usr/local/tomcat-web/bin
# 执行bin目录下的starup.sh文件,启动tomcat
./startup.sh
五、访问tomcat
tomcat的默认端口为8080
六、tomcat核心配置文件
server.xml中的每一个配置都对应了tomcat中的一个组件。
<?xml version="1.0" encoding="UTF-8"?>
<!-- Server:顶层元素,代表整个Tomcat容器,一个Server元素中可以有一个或多个Service元素,它的作用是提供一个接口让客户端能够访问所含的Service集合,同时维护所含Service的生命周期,包括如何初始化、如何结束服务、如何找到客户端要访问的Service -->
<!-- Server的属性:
1.shutdown:表示关闭Server的指令。
2.port:表示Server接收shutdown指令的端口号,设置为-1可以禁掉该端口
-->
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<!-- Service:包含一个Engine元素以及一组与之相连的一个或多个Connector元素 -->
<Service name="Catalina">
<!-- Connector:连接器,作用是接收请求,创建Request和Response对象用于和请求端交换数据,然后分配线程让Engine处理这个请求,并把创建好的Request和Response对象传给Engine -->
<!-- Connector的属性:
1.port:指定访问端口号
2.protocol:规定了请求的协议
3.connectionTimeout:表示超时时间
4.redirectPort:表示当强制要求https请求但实际请求是http时,重定向到端口号为8443的Connector
-->
<!-- 在生产环境中,很少将Tomcat直接对外开放接收请求,而是在Tomcat和客户端之间加一层代理服务器(如nginx),用于请求的转发、负载均衡、处理静态文件等 -->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- AJP协议负责和其他http服务器(如Apache)建立连接,在于其他http服务器集成的时候就要用到这个连接器,Tomcat可以用作Servlet/JSP容器,但是对静态资源的处理速度较慢,不如Apache,因此常常将Tomcat与Apache集成,前者作为Servlet容器,后者处理静态资源 -->
<Connector protocol="AJP/1.3" address="::1" port="8009" redirectPort="8443" />
<!-- Engine:Engine组件的作用是处理Connector接收进来的请求,并将完成的响应返回给Connector,Engine包含Host,Host包含Context -->
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<!-- Host:Host是Engine的子容器,Engine组件中可以内嵌一个或多个Host组件,每个Host组件代表Engine中的一个虚拟主机。Host虚拟主机的作用,是运行多个Web应用,并负责安装、展开、启动和结束每个Web应用。 -->
<!-- name属性指定虚拟主机的主机名 -->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
七、如何修改tomcat的端口号
如果要在同一个服务器开启多个tomcat,就需要修改tomcat的默认端口号,否则启动时会报端口号被占用的问题,因此在启动之前需要修改server.xml配置文件中的端口号,这里主要有3个地方需要修改。
(1)修改tomcat的访问端口号
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
(2)修改Server接收shutdown指令的端口号
<Server port="8006" shutdown="SHUTDOWN">
(3)修改配置文件中其他Connector的端口号
<Connector protocol="AJP/1.3" address="::1" port="8008" redirectPort="8443" />
注:在修改端口号之前,最好使用如下命令检查端口的占用情况:
lsof -i:端口号