Tomcat
掌握:
- Tomcat主要组成。
- 修改Tomcat项目访问端口。
- 通过Tomcat部署项目的三种方法。
Tomcat的主要组成结构可以参考Tomcat的配置文件$TOMCAT_HOME/conf/server.xml,里面包含各层级结构和相关配置。
Tomcat是web服务器的一种,一个Tomcat就是一个Server服务,里面可以有多个Service服务,每个Service服务主要由Connector与Container组成,同一个Service可以有多个不同种类的Connector(一个服务可以有多种连接,如同时提供Http和Https链接)。Service里面还有Jasper(负责将解析jsp),Session等其他模块。
Connector
Connector设置了访问端口,超时时间等配置,默认端口为8080,使用ProtocolHandler来处理请求的,ProtocolHandler由包含了三个部件:Endpoint、Processor、Adapter。
Endpoint用来处理底层Socket的网络连接(ServerSocket,TCP/IP),Processor用于将Endpoint接收到的Socket封装成Request(HTTP),Adapter用于将Request交给Container进行具体的处理。
Container
Host设置了访问域名,项目所在目录等配置,默认的域名配置是localhost,目录是webapps。web应用通过web.xml配置访问映射,以责任链的形式执行。
一个Service配置多个Host:同个端口下配置多个虚拟主机,用不同的域名(localhost也是域名来着),项目放在不同的目录下
一个Tomcat配置多个Service:同时使用不同的端口提供服务(通常会直接使用多个Tomcat,而不是通过配置多个Service)
修改端口
1、修改Shutdown端口,默认为8005端口,将8005修改为没有在使用的端口号。
<Server port="8005" shutdown="SHUTDOWN" debug="0">
2、修改http访问端口,默认为8080端口,将8080修改为没有在使用的端口号。当用户用http请求某个资源,而该资源本身又被设置了必须要https方式访问,此时Tomcat会自动重定向到redirectPort设置的https端口。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
3、修改AJP协议访问端口,默认为8009端口,将8009修改为没有在使用的端口号。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
部署项目
1、项目直接放入 webapps 目录中
- 将编写并编译好的web项目(注意要是编译好的,如果是 eclipse,可以将项目打成 war 包放入),放入到 webapps 中
- 运行$TOMCAT_HOME\bin 目录下的 startup,Windows下文bat文件,Linux下为sh文件,启动服务器
- 在浏览器输入:http://localhost:8080/项目名/访问的文件名
2、修改 conf/server.xml 文件
打开tomcat下conf/server.xml,在<Host> </Host>标签之间输入项目配置信息(Context元素),<Context path="/WebProject"
docBase=
"D:/WebProject"
reloadable=
"true"
/>,最后
通过startup启动Tomcat。
- docBase:web项目的WebRoot所在的路径,注意是WebRoot的路径,不是项目的路径。其实也就是编译后的项目
- path:浏览器访问时的路径名
- reloadble:设定项目有改动时,tomcat是否重新加载该项目
3、$TOMCAT_HOME\conf\Catalina\localhost配置
- 进入到 apache-tomcat-7.0.52\conf\Catalina\localhost 目录,新建一个 项目名.xml 文件
- 在 那个新建的 xml 文件中,增加下面配置语句(和第二种方式是一样的,但是不需要 path 配置,文件名就是项目名了)
- 通过startup启动Tomcat
参考文章:
四张图带你了解Tomcat系统架构:https://blog.youkuaiyun.com/qq_38245537/article/details/79009448
Tomcat 端口配置,及原理详解:https://www.cnblogs.com/jobs-lgy/p/8136331.html
Tomcat中redirectPort的作用:https://blog.youkuaiyun.com/catoop/article/details/79510414
Tomcat 部署项目的三种方法:https://www.cnblogs.com/ysocean/p/6893446.html