1、Tomcat服务介绍
Tomcat是Apache 软件基金会项目中的一个核心项目,Tomcat服务器是一个开源的轻量级Web应用服务器,早期的名称为catalina,后来由Apache、Sun 和其他一些公司及个人共同开发而成,并更名为Tomcat。因为Tomcat 技术先进、性能稳定,成为目前比较流行的Web 应用服务器。Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展,但它是独立运行的。
Tomcat主要组件:服务器Server,服务Service,连接器Connector、容器Container。连接器Connector和容器Container是Tomcat的核心。一个Container容器和一个或多个Connector组合在一起,加上其他一些支持的组件共同组成一个Service服务,有了Service服务便可以对外提供能力了,但是Service服务的生存需要一个环境,这个环境便是Server,Server组件为Service服务的正常使用提供了生存环境,Server组件可以同时管理一个或多个Service服务。
Tomcat Server处理一个HTTP请求的过程(处理流程引用「水-滴」的原创文章,原文链接:https://blog.csdn.net/u014231646/article/details/79482195)
1、用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得。
2、Connector把该请求交给它所在的Service的Engine来处理,并等待Engine的回应。
3、Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host。
4、Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhost的Host获得请求/test/index.jsp,匹配它所拥有的所有的Context。Host匹配到路径为/test的Context(如果匹配不到就把该请求交给路径名为“ ”的Context去处理)。
5、path=“/test”的Context获得请求/index.jsp,在它的mapping table中寻找出对应的Servlet。Context匹配到URL PATTERN为*.jsp的Servlet,对应于JspServlet类。
6、构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost().执行业务逻辑、数据存储等程序。
7、Context把执行完之后的HttpServletResponse对象返回给Host。
8、Host把HttpServletResponse对象返回给Engine。
9、Engine把HttpServletResponse对象返回Connector。
10、Connector把HttpServletResponse对象返回给客户Browser。
2、文档适用范围
本文档分为JDK1.8+Tomcat7.0安装以及JDK1.8+Tomcat8.0安装。
| 软件工具 | 支持版本 |
|---|---|
| Centos | 7.0+ |
| JDK | 1.8+ |
| Tomcat | 7.0+/8.0+ |
3、Tomcat7.0版本部署
3.1、JDK1.8下载安装
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
3.1.1、解压到指定目录
$ sudo mkdir -p /usr/java$ sudo tar zvxf jdk-8u131-linux-x64.tar.gz -C /usr/java
3.1.2、配置环境变量
$ vi /etc/profile# 添加export JAVA_HOME=/usr/java/jdk1.8.0_131export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar# 使环境变量生效$ source /etc/profile
3.1.3、检查JDK版本
$ java -version
3.2、Tomcat7.0下载
tomcat官方下载站点:https://archive.apache.org/dist/tomcat/tomcat-7/
$ wget https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.108/bin/apache-tomcat-7.0.108.tar.gz
3.2.1、Tomcat7.0部署配置
# 创建tomcat目录$ sudo mkdir /usr/tomcat#解压到指定目录$ sudo tar -zvxf apache-tomcat-7.0.108.tar.gz -C /usr/tomcat#改名目录名为tomcat7$ mv /usr/tomcat/apache-tomcat-7.0.108 /usr/tomcat/tomcat7
3.2.2、Tomcat指定JDK配置
如果系统默认的JDK版本是jdk 1.8,则可以省略此步骤。如果系统中部署有多个Tomcat版本,则需要进行如下配置。
增加如下配置:
export JAVA_HOME=/usr/java/jdk1.8.0_131
- 修改setclasspath.sh文件```bash#修改setclasspath.sh$ vi /usr/tomcat/tomcat7/bin/setclasspath.sh#增加如下配置:export JAVA_HOME=/usr/java/jdk1.8.0_131
3.2.3、Tomcat端口修改与防火墙配置
修改下面这段配置
- 开放防火墙端口
```bash
#开放8080端口
$ firewall-cmd --add-port=8080/tcp --permanent && firewall-cmd --reload
#重新加载防火墙规则
$ firewall-cmd --reload
3.2.4、Tomcat启停命令
#启动
$ cd /usr/tomcat/tomcat7/bin && sh startup.sh
#停用
$ cd /usr/tomcat/tomcat7/bin && sh shutdown.sh
通过浏览器访问 http://ip:8080验证
3.2.5、配置Tomcat开机启动
[Unit]
Description=Tomcat7
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/tomcat/tomcat7/bin/startup.sh ExecReload=/usr/tomcat/tomcat7/bin/startup.sh ExecStop=/usr/tomcat/tomcat7/bin/shutdown.sh
[Install] WantedBy=multi-user.target
- 配置开机启动
```bash
# Tomcat7开机启动
$ systemctl enable tomcat7
# 启动tomcat7服务
$ systemctl start tomcat7
4、Tomcat8.0版本部署
4.1、JDK1.8下载安装
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
4.1.1、解压到指定目录
$ sudo mkdir -p /usr/java
$ sudo tar zvxf jdk-8u131-linux-x64.tar.gz -C /usr/java
4.1.2、配置环境变量
$ vi /etc/profile
# 添加
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 使环境变量生效
$ source /etc/profile
4.1.3、检查JDK版本
$ java -version
4.2、Tomcat8.0下载
tomcat官方下载站点:https://archive.apache.org/dist/tomcat/tomcat-8/
$ wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.73/bin/apache-tomcat-8.5.73.tar.gz
3.2.1、Tomcat8.0部署配置
# 创建tomcat目录
$ sudo mkdir /usr/tomcat
#解压到指定目录
$ sudo tar -zvxf apache-tomcat-8.5.73.tar.gz -C /usr/tomcat
#改名目录名为tomcat8
$ mv /usr/tomcat/apache-tomcat-8.5.73 /usr/tomcat/tomcat8
3.2.2、Tomcat指定JDK配置
如果系统默认的JDK版本是jdk 1.8,则可以省略此步骤。如果系统中部署有多个Tomcat版本,则需要进行如下配置。
增加如下配置:
export JAVA_HOME=/usr/java/jdk1.8.0_131
- 修改setclasspath.sh文件
```bash
#修改setclasspath.sh
$ vi /usr/tomcat/tomcat8/bin/setclasspath.sh
#增加如下配置:
export JAVA_HOME=/usr/java/jdk1.8.0_131
3.2.3、Tomcat端口修改与防火墙配置
修改下面这段配置
- 开放防火墙端口
```bash
#开放8080端口
$ firewall-cmd --add-port=8080/tcp --permanent && firewall-cmd --reload
#重新加载防火墙规则
$ firewall-cmd --reload
3.2.4、Tomcat启停命令
#启动
$ cd /usr/tomcat/tomcat8/bin && sh startup.sh
#停用
$ cd /usr/tomcat/tomcat8/bin && sh shutdown.sh
通过浏览器访问 http://ip:8080验证
3.2.5、配置Tomcat开机启动
[Unit]
Description=Tomcat8
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/tomcat/tomcat8/bin/startup.sh ExecReload=/usr/tomcat/tomcat8/bin/startup.sh ExecStop=/usr/tomcat/tomcat8/bin/shutdown.sh
[Install] WantedBy=multi-user.target
- 配置开机启动
```bash
# Tomcat8开机启动
$ systemctl enable tomcat8
# 启动tomcat8服务
$ systemctl start tomcat8
