tomcat 结构分析

本文详细介绍了Tomcat服务器的组成结构,包括Service、Connector与Container的核心概念,讲解了如何修改访问端口,以及三种部署项目的方法。深入理解Tomcat架构,掌握端口配置与项目部署技巧。

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

### Tomcat 目录结构详解 #### bin 文件夹 `bin` 文件夹包含了启动和关闭 Tomcat 所需的各种脚本文件。这些脚本可以是 Windows 的 `.bat` 文件或是 Unix/Linux 下的 Shell 脚本,用于执行诸如设置环境变量、加载类路径以及调用 Java 命令来启动或停止服务等操作[^1]。 ```bash startup.sh # 用于启动 Tomcat (Linux/Unix) shutdown.sh # 用于关闭 Tomcat (Linux/Unix) ``` #### conf 文件夹 `conf` 文件夹存储着配置文件,其中包括 `server.xml`, `web.xml`, 和其他重要的 XML 配置文档。这里定义了服务器端口、连接器参数、全局上下文属性以及其他与应用部署有关的信息。管理员可以通过修改这里的文件来自定义 Tomcat 行为。 #### lib 文件夹 `lib` 文件夹内放置的是共享库文件(JAR),它们被整个 Tomcat 实例所使用的第三方库或者是扩展功能所需的依赖项。任何应用程序都可以访问此目录下的 JAR 包而无需重复打包到各自的 WEB-INF/lib 中。 #### logs 文件夹 `logs` 文件夹保存有 Tomcat 运行期间产生的各种日志记录,比如 catalina.out, localhost_access_log.txt 等。这对于调试错误非常有用,并且可以根据需要定期清理而不影响正常运作[^3]。 #### temp 文件夹 `temp` 是临时工作空间,在某些情况下会被 JVM 或者 Web 应用程序用来创建临时文件。当 Tomcat 关闭时通常会自动删除这里面的内容;也可以手动清空以释放磁盘空间并重置缓存状态[^2]。 #### webapps 文件夹 `webapps` 存放实际发布的 Web 应用程序,默认情况下每个独立的应用都会有一个对应的子文件夹。如果启用了自动部署特性,则只需将 WAR 文件放入此处即可完成安装过程。 #### work 文件夹 `work` 文件夹主要用于存放由 Jasper 编译后的 JSP 页面和其他中间件生成的工作文件。每当重新启动 Tomcat 或更新资源后,这个目录里的内容可能会发生变化甚至全部移除以便于刷新缓存数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值