Tomcat
作者:互联网
------------恢复内容开始------------
简介
Tomcat服务器是Apache的一个开源免费的Web容器,源免费的Web容器。实现了 JavaEE平台下部分技术规范,属于轻量级应用服务器。
作用
可以在Tomcat中运行编写的Servlet、JSP。
下载
官网地址:https://tomcat.apache.org/
安装:
Tomcat是绿色软件,解压完即可使用,在安装前要先配置jdk和jre环境变量
Tomcat目录结构:
- bin:存放tomcat启动或关闭所需的命令文件(以.sh结尾的是linux命令,以.bat结尾的是win命令)
- conf:存放配置文件
- lib:存放运行时所需的jar包
- logs:存放运行过程所产生的日志文件
- temp:存放运行过程所产生的临时文件
- work:存放运行时编译后的文件,如jsp编译后的文件
- webapps:存放应用程序,tomcat启动时会加载webapps目录下的应用程序,以文件夹或者jar包形式发布应用
Tomcat的启动与关闭:
启动:
方式一:运行bin目录下的startup.bat文件
方式二:在命令行窗口进入bin目录,输入catlina.bat start,catlina.bat为命令文件,start为参数
关闭:
方式一:运行bin目录下的shutdown.bat文件
方式二:在命令行窗口进入bin目录,输入catlina.bat stop,catlina.bat为命令文件,stop为参数
方式三:直接关闭Tomcat控制台窗口
如何访问Tomcat:
访问本机Tomcat的URL
http://localhost:端口
访问Tomcat的URL
http://ip:端口
Tomcat的配置文件
context.xml(唯一一个修改后不用重启服务器的配置文件,其他若修改都得重启服务器才能生效)
Tomcat 公用的环境配置。 Tomcat 服务器会定时 去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自 动重新加载这个文件,而不需要重启服务器 。
web.xml
Web应用程序描述文件,都是关于是Web应用程序的配置文件。所 有Web应用的 web.xml 文件的父文件。
server.xml
是 tomcat 服务器的核心配置文件,server.xml的每一个元素都对 应了 tomcat中的一个组件,通过对xml中元素的配置,实现对 tomcat中的各个组件和端口的配置。
tomcat-users.xml
配置访问Tomcat的用户以及角色的配置文件。
如何解决启动Tomcat时控制台的乱码问题
产生乱码的原因:
Tomcat在输出日志中使用的是UTF-8编码,而中文Window操作系统使用的是GBK编码,由于编码格式不同导致乱码。
修改方法:
修改conf目录中的logging.properties文件重新指定的编码方式
java.util.logging.ConsoleHandler.encoding = GBK
如何修改Tomcat监听端口
Tomca默认监听端口为8080,通过conf目录中的server.xml文件来改变Tomcat监听端口
Tomcat Manager
- Tomcat Manager是Tomcat自带的web应用,用于管理Tomcat自带的或者部署在Tomcat上的应用;
- 默认情况属于禁用状态,需以用户角色进行登录并授权才能使用相应的功能;
- 由于Tomcat没有配置任何默认的用户,因此需进行用户配置后才能使用Tomcat Manager
在conf目录下的tomcat-users.xml文件中进行角色 配置、用户名及密码配置
角色分类:
- manager-gui角色---->允许访问HTML GUI和状态页面(即URL路径为/manager/html/*)
- manager-script角色----> 允许访问文本界面和状态页面(即URL路径为/manager/text/*)
- manager-jmx角色----> 允许访问JMX代理和状态页面(即URL路径 为/manager/jmxproxy/*)
- manager- status角色---->仅允许访问状态页面(即URL路径为/manager/status/*)
配置用户及角色:
修改conf目录下的tomcat-users.xml,将下列代码添加进配置文件
<role rolename ="manager-gui"/> <user username ="tomcat" password ="tomcat" roles="manager-gui" />
通过解除访问限制实现远程访问
修改webapps\manager\META-INF目录下的context.xml文件
Tomcat架构
Tomcat工作原理
一个能处理请求与响应的web容器,实现JavaEE平台下Servlet,JSP等技术规范
Tomcat架构分析:
通过conf/server.xml配置文件对组件进行修改
Tomcat组件
Server组件
一个server实例就是一个Tomcat,启动一个server实例就等同于启动一个Tomcat(即一个JVM进程,由于Tomcat的大部分的代码是用java编写的,而java代码运行在JVM当中,因此启动一个Tomcat就意味着启动JVM)
server实例监听在8005端口,等待接收shutdown指令,关闭tomcat的端口,(8080等着处理请求的端口,8005等着接收关闭的端口)
Server的定义不能使用同一个端口,这意味着 如果在同一个物理机上启动了多个Server实例,必须配置它们使用 不同的端口
1 <Server port="8005" shutdown="SHUTDOWN">
port: 接收shutdown指令的端口,默认为8005;
shutdown:发往此Server用于实现关闭tomcat实例的命令字符 串,默认为SHUTDOWN;
Service组件
解决链接器与请求之间的对应关系,一个或多个Connector可以与一个Engine相对应(Service组件可以包含一个引擎,一个或多个连接器)
每个连接器通过一个特定的端口和协议接收请求并将其转发至关联的引擎进行处理
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Service name="Catalina">
name:此服务的名称,默认为Catalina;
Connector组件
支持处理不同请求的组件,一个引擎可以有一个或多个连接器,以 适应多种请求方式。默认只开启了处理Http协议的连接器。如果需 要使用其他协议,需要在Tomcat中配置该协议的连接器。
在Tomcat中连接器类型通常有4种:
- HTTP连接器
- SSL连接器
- AJP 1.3连接器
- proxy连接器
<Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
- port:监听的端口
- protocol:连接器使用的协议,默认为HTTP/1.1;
- connectionTimeout:等待客户端发送请求的超时时间,单位为毫 秒;
- redirectPort:如果某连接器支持的协议是HTTP,当接收客户端发 来的HTTPS请求时,则转发至此属性定义的端口;
- maxThreads:支持的最大并发连接数,默认为200个;
Engine组件
Engine是Servlet处理器的一个实例,即servlet引擎,定义在 server.xml中的Service标签中。
Engine需要defaultHost属性来为其定义一个接收所有发往非明确定义虚拟主机的请求的Host组件。(一个host组件对应一个虚拟主机)
<Engine name="Catalina" defaultHost="localhost">
<!--name是组件的名称-->
Host组件
用于在Tomcat中配置虚拟主机
虚拟主机(英语:virtual hosting)或称共享主机(shared web hosting),又称虚拟服务器,是一种在单一主机或主机群上,实现 多网域服务的方法,可以运行多个网站或服务的技术。
Host组件位于Engine容器中,用于接收请求并进行相应处理的虚拟主机。
通过该容器可以运行Servlet或者JSP来处理请求。
- name:虚拟主机的名称,Tomcat通过在请求URL中的域名与 name中的值匹配,用于查找能够处理该请求的虚拟主机。如果未 找到则交给在Engine中defaultHost指定的主机处理;
- appBase:此Host的webapps目录,即指定存放web应用程序的目录的路径;
- autoDeploy:在Tomcat处于运行状态时放置于appBase目录中的应用程序文件是否自动进行
- deploy;默认为true;
- unpackWARs:在启用此webapps时是否对WAR格式的归档文件先 进行展开;默认为true;
Context组件
Context是Host的子组件,代表指定一个Web应用,它运行在某个 指定的虚拟主机(Host)上;每个Web应用都是一个WAR文件,或 文件的目录。
<Context path="/test" docBase="D:\bjsxt\itbaizhan.war" />
- path:context path既浏览器访问项目的访问路径。
- docBase:相应的Web应用程序的存放位置;也可以使用相对路径,起始路径为此Context所属Host中appBase定义的路径;
如何配置虚拟主机
什么是虚拟主机:在一个物理机中,通过特定的软件去虚拟化出多个主机
创建页面
webapps1/a/index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> BJSXT </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> Welcome to BJSXT </BODY> </HTML>
webapps2/a/index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> ITBZ </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> Welcome to ITBZ </BODY> </HTML>
修改server.xml添加Host配置
<Host name="bjsxt.com" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.Access LogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> <Host name="itbz.com" appBase="webapps2" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.Access LogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host>
修改windows的Host文件
完成IP与域名的绑定
Host文件的位置
C:\Windows\System32\drivers\etc
修改内容
127.0.0.1 itbz.com 127.0.0.1 bjsxt.com
以上部分图片来源: https://www.itbaizhan.com/
标签:xml,文件,Tomcat,端口,连接器,组件 来源: https://www.cnblogs.com/chaplu/p/16045794.html