Tomcat服务器是一个免费的开源web应用服务器,属于轻量级应用服务器,在中小型系统和并发用户不是很多的场合中被普遍使用,是开发和测试JSP程序的首选。一般来说,Tomcat虽然和apache或者Nginx这些web服务器一样,具有处理HTML页面的功能,然而由于其处理静态页面的能力远不如apache或者Nginx,所以Tomcat一般是作为一个servlet和JSP容器,单独运行在后端。

关于Tomcat服务器的部署过程及应用环境,请参考博文https://blog.51cto.com/14227204/2436201

关于Tomcat的配置文件的作用及相关说明:
在安装Tomcat之前必须安装JDK,JDK是sun公司免费提供的Java语言的软件开发工具包,其中包含Java虚拟机(JVM)。编写好的Java源程序经过编译可形成Java字节码,只要安装了JDK就可以利用JVM解释这些字码文件,从而保证Java的跨平台性。

在平台兼容性方面,JDK作为解释字节码文件并据此调用操作系统的API实现对应功能的Java虚拟机,与操作系统类型和平台位数密切相关,因此存在不同类型的版本,而Tomcat也具有这些特征,默认情况下JDK已经安装,可以使用如下命令检查JDK是否安装:

[root@localhost ~]# java -version    #查看JDK是否安装,若是没有,需要自行安装
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)

主要的目录说明:

[root@localhost ~]# cd /usr/local/tomcat8/         #切换至Tomcat目录
[root@localhost tomcat8]# ll                   #查看目录下所有内容
总用量 92
drwxr-x--- 2 root root  4096 6月  22 20:08 bin             
#存放Windows或Linux平台上启动和关闭Tomcat的脚本文件
drwx------ 2 root root   238 6月  22 2017 conf
#存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml
drwxr-x--- 2 root root  4096 6月  22 20:08 lib
#存放Tomcat运行需要的库文件
-rw-r----- 1 root root 57092 6月  22 2017 LICENSE
drwxr-x--- 2 root root     6 6月  22 2017 logs
#存放Tomcat执行时的log文件
-rw-r----- 1 root root  1723 6月  22 2017 NOTICE
-rw-r----- 1 root root  7064 6月  22 2017 RELEASE-NOTES
-rw-r----- 1 root root 15946 6月  22 2017 RUNNING.txt
drwxr-x--- 2 root root    30 6月  22 20:08 temp
drwxr-x--- 7 root root    81 6月  22 2017 webapps
#Tomcat的主要web发布目录(包括应用程序示例)。
drwxr-x--- 2 root root     6 6月  22 2017 work
#存放JSP编译后产生的class文件。

配置文件说明:

[root@localhost tomcat8]# ll conf      #查看conf目录下的内容
总用量 224
-rw------- 1 root root  13816 6月  22 2017 catalina.policy              #权限控制配置文件
-rw------- 1 root root   7376 6月  22 2017 catalina.properties        #Tomcat属性配置文件
-rw------- 1 root root   1338 6月  22 2017 context.xml                   #上下文配置文件
-rw------- 1 root root   1149 6月  22 2017 jaspic-providers.xml
-rw------- 1 root root   2358 6月  22 2017 jaspic-providers.xsd
-rw------- 1 root root   3622 6月  22 2017 logging.properties         #日志log相关配置文件
-rw------- 1 root root   7511 6月  22 2017 server.xml                     #主配置文件
-rw------- 1 root root   2164 6月  22 2017 tomcat-users.xml          #manager-gui管理配置文件
#Tomcat安装后默认提供一个manager管理界面,通过配置该文件可以开启访问。
-rw------- 1 root root   2633 6月  22 2017 tomcat-users.xsd
-rw------- 1 root root 168251 6月  22 2017 web.xml

Tomcat主配置文件说明:
server.xml为Tomcat的主要配置文件,通过配置该文件,可以修改Tomcat的启动端口、网站目录、虚拟主机、开启https等重要功能。

整个server.xml由以下结构构成:

以下是默认安装server.xml文件的部分内容:

[root@localhost tomcat8]# vim conf/server.xml

............                                  #省略部分内容
                
#Tomcat关闭端口,默认只对本机地址开放,可以在本机通过Telnet  127.0.0.1 8005访问,
#对Tomcat进行关闭操作
............                                  #省略部分内容
 
#Tomcat启动的默认端口号8080,可以根据需要进行更改。
............                                  #省略部分内容
 
    
#Tomcat启动AJP 1.3连接器时默认的端口号,可以根据需要进行更改
............                                  #省略部分内容
#以下为Tomcat定义虚拟主机时的配置及日志配置


        
        

        
        

      
    
  

Tomcat server的组成部分说明:
Server

server元素代表了整个CatAlina的servlet容器。

Service

Service是这样一个集合:它由一个或者多个Connector,以及一个Engine(负责处理所有Connector所获得的客户请求)组成。

Connector

一个Connector在某个指定端口上侦听客户请求,并将获得的请求交给Engine来处理,从Engine处获得回应并返回客户。

 Tomcat有两个典型的Connector,一个直接侦听来自browser的http请求,一个侦听来自其他webserver的请求。

 Coyote  HTTP/1.1  Connector在端口8080处侦听来自客户browser(浏览)的http请求。

 Coyote  JK2   Connector 在端口8009处侦听来自其他文本server(Apache)的servlet/jsp代理请求。

Engine:

Engine下可以配置多个虚拟主机virtual host,每个虚拟主机都有一个域名。

当Engine获得一个请求时,它把该请求匹配到某个Host上,然后把该请求交给该host来处理。

Engine有一个默认虚拟主机,当请求无法匹配到任何一个host上时,将交给该默认主机处理。

Host

Host代表一个virtual Host(虚拟主机),每个虚拟主机和某个网络域名Domain Name相匹配。

每个虚拟主机下都可以部署一个或多个web app,每个web app对应一个Context,有一个Context path。

当host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理,匹配的方法是“最长匹配”,所以一个path==""的Context将成为该Host的默认Context。
所有无法和其他Context的路径名匹配的请求都将最终和该默认Context匹配。

Context

一个Context对应一个web application ,一个web application由一个或者多个servlet组成。