Tomcat服务器是一个免费的开源web应用服务器,属于轻量级应用服务器,在中小型系统和并发用户不是不少的场合中被广泛使用,是开发和测试JSP程序的首选。通常来讲,Tomcat虽然和apache或者Nginx这些web服务器同样,具备处理HTML页面的功能,然而因为其处理静态页面的能力远不如apache或者Nginx,因此Tomcat通常是做为一个servlet和JSP容器,单独运行在后端。html
关于Tomcat服务器的部署过程及应用环境,请参考博文:http://www.javashuo.com/article/p-hyaaxtjf-hu.html 。java
这篇博文主要来聊一聊关于Tomcat的配置文件的做用及相关说明。web
在安装Tomcat以前必须安装JDK,JDK是sun公司免费提供的Java语言的软件开发工具包,其中包含Java虚拟机(JVM)。编写好的Java源程序通过编译可造成Java字节码,只要安装了JDK就能够利用JVM解释这些字码文件,从而保证Java的跨平台性。apache
在平台兼容性方面,JDK做为解释字节码文件并据此调用操做系统的API实现对应功能的Java虚拟机,与操做系统类型和平台位数密切相关,所以存在不一样类型的版本,而Tomcat也具备这些特征,默认状况下JDK已经安装,可使用以下命令检查JDK是否安装:vim
[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)
Tomcat的配置过程不是这篇博文要说的,上面已经给出了配置过程的博文连接,如有须要,能够参考那篇博文,如今来聊一聊它的配置文件说明:后端
一、主要的目录说明:tomcat
[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>、<Service>、<Connector /><Engine >、<Host>、<Context>、</Context></Host></Engine></Service>和</Server>。
如下是默认安装server.xml文件的部份内容,其中<!-- -->内的内容时注释信息。#号开头是我写的说明:
[root@localhost tomcat8]# vim conf/server.xml <?xml version="1.0" encoding="UTF-8"?> ............ #省略部份内容 <Server port="8005" shutdown="SHUTDOWN"> #Tomcat关闭端口,默认只对本机地址开放,能够在本机经过Telnet 127.0.0.1 8005访问, #对Tomcat进行关闭操做 ............ #省略部份内容 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> #Tomcat启动的默认端口号8080,能够根据须要进行更改。 ............ #省略部份内容 <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> #Tomcat启动AJP 1.3链接器时默认的端口号,能够根据须要进行更改 ............ #省略部份内容 #如下为Tomcat定义虚拟主机时的配置及日志配置 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <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 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组成。