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下载安装

  1. http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

3.1.1、解压到指定目录
  1. $ sudo mkdir -p /usr/java
  2. $ sudo tar zvxf jdk-8u131-linux-x64.tar.gz -C /usr/java

3.1.2、配置环境变量
  1. $ vi /etc/profile
  2. # 添加
  3. export JAVA_HOME=/usr/java/jdk1.8.0_131
  4. export PATH=$JAVA_HOME/bin:$PATH
  5. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  6. # 使环境变量生效
  7. $ source /etc/profile

3.1.3、检查JDK版本
  1. $ java -version

3.2、Tomcat7.0下载

tomcat官方下载站点:https://archive.apache.org/dist/tomcat/tomcat-7/

  1. $ 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部署配置
  1. # 创建tomcat目录
  2. $ sudo mkdir /usr/tomcat
  3. #解压到指定目录
  4. $ sudo tar -zvxf apache-tomcat-7.0.108.tar.gz -C /usr/tomcat
  5. #改名目录名为tomcat7
  6. $ mv /usr/tomcat/apache-tomcat-7.0.108 /usr/tomcat/tomcat7

3.2.2、Tomcat指定JDK配置

如果系统默认的JDK版本是jdk 1.8,则可以省略此步骤。如果系统中部署有多个Tomcat版本,则需要进行如下配置。

  • 修改catalina.sh文件 ```bash

    修改catalina.sh

    $ vi /usr/tomcat/tomcat7/bin/catalina.sh

增加如下配置:

export JAVA_HOME=/usr/java/jdk1.8.0_131

  1. - 修改setclasspath.sh文件
  2. ```bash
  3. #修改setclasspath.sh
  4. $ vi /usr/tomcat/tomcat7/bin/setclasspath.sh
  5. #增加如下配置:
  6. export JAVA_HOME=/usr/java/jdk1.8.0_131

3.2.3、Tomcat端口修改与防火墙配置

  • 修改端口,此操作非必要,如果部署多个Tomcat,则需要修改端口 ```bash

    修改server.xml

    $ vi /usr/tomcat/tomcat7/conf/server.xml

修改下面这段配置


- 开放防火墙端口
```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开机启动
  • 将Tomcat配置为系统服务 ```bash

    创建Tomcat7服务文件

    $ vi /usr/lib/systemd/system/tomcat7.service

[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版本,则需要进行如下配置。

  • 修改catalina.sh文件 ```bash

    修改catalina.sh

    $ vi /usr/tomcat/tomcat8/bin/catalina.sh

增加如下配置:

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端口修改与防火墙配置

  • 修改端口,此操作非必要,如果部署多个Tomcat,则需要修改端口 ```bash

    修改server.xml

    $ vi /usr/tomcat/tomcat8/conf/server.xml

修改下面这段配置


- 开放防火墙端口
```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开机启动
  • 将Tomcat配置为系统服务 ```bash

    创建Tomcat7服务文件

    $ vi /usr/lib/systemd/system/tomcat8.service

[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