Tomcat工作原理

一、apache-tomcat方式:

配置文件:server.xml

主要配置项:

1、Server:

<Server port="8005" shutdown="SHUTDOWN"> </Server>

指定8005端口,监听关闭tomcat进行的请求。

2、 Connector:共两个,定义客户端和服务器之间的连接。获取客户端发起的请求后,转交给Engine处理,然后将回应返回给客户端。

  第一个监听80端口(若只有tomcat,没有apache,此处监听的是8080端口),直接接收来自客户端浏览器的请求。若请求使用了SSL(https),则使用8443端口。

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

    第二个监听8009端口,接收通过其他WebServer(如apache)转发来的http请求。

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

3、Engine:定义虚拟主机

     Host定义虚拟主机名,appBase定义应用程序存放目录。

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

    Engine中可以定义多个Host,当Engine收到http请求时会匹配到一个虚拟主机,由该虚拟主机来处理。如果没有匹配到一个虚拟主机,则将该请求交给默认设置的虚拟主机来处理。

    以上配置时,例如应用程序存放目录为:webapps/hello/index...,则访问url为localhost/hello。

二、apache-tomcat处理http请求的过程:

1、客户端直接请求80/8080端口(或者由8009端口接收由apache等其他WebServer转发来的请求),Connector接收客户端请求。

2、Connector将http请求交给Engine。

3、Engine收到请求后,匹配到对应的Host,将该请求交给该Host处理。

4、Host处理请求,并将结果原路返回。

5、Connector接收到处理的结果后,返回给客户端或其他WebServer。

原文地址:https://www.cnblogs.com/ahaii/p/5670422.html