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。