tomcat学习(一) tomcat在centos下部署以及组件介绍

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
tomcat 由原始java的servlet实现 java web server以及apache的catalina项目合并而成。

前提为配置好java环境
1)rpm -ivh jdk-11.0.5_linux-x64_bin.rpm
2)配置环境变量

vi /etc/profile
export JAVA_HOME=/usr/local/jdk-11.0.5/
export PATH=$JAVA_HOME/bin:$PATH

3)应用环境变量

source /etc/profile

1、下载tomcat
下载tag.gz
从官网https://tomcat.apache.org/下载
或用wget下载

wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.30/bin/apache-tomcat-9.0.30.tar.gz

2、解压

tar zvxf apache-tomcat-9.0.30.tar.gz

3、启动tomcat
在tomcat bin目录下运行

./startup.sh

访问 http://:8080

4、将tomcat注册为系统服务

vi bin/catalina.sh
:set number

在大约143行加入内容

CATALINA_PID="CATALINA_BASE/tomcat.pid"

在这里插入图片描述

:wq!

创建tomcat.service

vi /lib/systemd/system/tomcat.service

[Unit]
Description=tomcat
After=network.target            //指定启动的时机

[Service]
Type=forking

Environment="JAVA_HOME=/usr/local/jdk/"    //指定java环境变量

ExecStart=/usr/local/tomcat/bin/startup.sh    //指定启动脚本
ExecStop=/usr/local/tomcat/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

查看jdk环境变量的方法https://www.cnblogs.com/SunshineKimi/p/10795820.html

设置为开启机启动:systemctl enable tomcat.service
启动服务:systemctl start tomcat.service
停止服务:systemctl stop tomcat.service
重启服务:systemctl restart tomcat.service
检查状态:systemctl status tomcat
修改tomcat.service文件后需要执行下面命令使其生效:systemctl daemon-reload
查看所有已启动的服务:systemctl list-units --type=service

5、tomcat组件介绍
组件结构

<server>
	<service>
		<connector/>
		<engine>
			<host>
				<context>
				</context>
			</host>
		</engine>
	</service>
</server>

1)顶级组件:server

	server:一个运行在JVM中的tomcat实例。

2)容器类组件:可以包含其他组件的组件

	engine:核心容器,catalina引擎,负责通过connector接收用户请求,将请求转至内部虚拟主机。
	通过其defaultHost属性,转发至默认host
	
	host:类似httpd的虚拟主机,支持基于HQDN的虚拟主机。
		相关属性:
		1) appBase: 此host的webapps路径,可以使用$CATALINA_HOME的相对路径。
		2) autoDeploy:是否自动部署,即运行时放入appBase路径中的程序文件是否自动部署,默认为true。
		3) unpackWars: 是否解压war,默认为true。
	
	conetxt:最内层的容器组件,一个context代表一个应用程序。指定应用的webapp路径,还能为webapp指定额外属性,如部署方式等。
		相关属性:
		1) docBase: 相关的web应用程序的存放位置,也可以使用相对位置,起始路径为此Context所属的host中appBase定义的路径,
		2) path:相对于根路径而言的URI,如果为”“,则为根路径。
		3) reloadable: 是否允许重新加载此context类相关的Web应用程序类,默认为false。
	
	service:负责将连接器关联至engine,一个service内部可以有多个connector,但只能有一个engine。相关属性:
	1)className:用于实现此server容器的完全限定类名称,默认为org.apache.catalina.core.StandardServer。
	2)port:用户接受shutdown指令的端口,默认仅允许通过本机访问,默认为8005。
	3)name:此服务的名称,默认为Catalina。

3)连接器组件:连接用户请求到tomcat

	Connector组件按照根据tomcat的工作模式分为一下两类:
		Tomcat作为应用程序服务器:请求来自前端web服务器,可能是Apache、IIS、Nginx等。
		Tomcat作为独立的服务器:请求来组web浏览器。
		连接器分四种:
		1)HTTP连接器
		2)SSL连接器
		3)AJP连接器
		4)Proxy连接器
		常见的属性说明:
		1)address:连接器监听的地址,默认为所有地址,即0.0.0.0。
		2) maxThreads:支持的最大并发连接数,默认为200。
		3) port:监听的端口,默认为0
		4) protocol:连接的协议,默认为HTTP/1.1,定义AJP协议时默认为AJP/1.3。
		5) redirectPort:转发端口,如果定义的HTTP连接器,发送的请求为HTTPS,转发至此端口
		6) connectionTimeout:等待客户端发送请求的超时时间,默认为60000,1分钟
		7) enableLookups:是否通过request.getRemoteHost()进行DNS查询获取客户端的主机名,默认为true。
		8) acceptCount:等待队列的最大长度,tomcat所有线程处于繁忙状态时,新发送过来的请求处于等待队列中。
			

4)被嵌套类组件:不能包含其他组件的组件
5)嵌套类组件:

	valve:拦截请求并在转发至webapps前做某些处理,可用于任何组件中
	logger:日志记录器,用于记录组件内部状态信息,可用于除context之外任何组件中
	realm:关联一个用户认证库,实现认证和授权,可用于任何组件中

6、AJP连接器介绍
使用二进制协议,使用httpd反向代理用户请求至tomcat。用户使用apache服务反向代理时,nginx不行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值