Tomcat 部署及优化

一、Tomcat概述

Tomcat是Java语言开发的,Tomcat服务器是一个免费的开放源代码的Web应用服务器,是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
Tomcat属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
一般来说,Tomcat虽然和Apzche或者Nginx这些Web服务器一样,具有处理HTML页面的功能,然而由于七处理静态HTML的能力远不及Apache或者Nginx,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端。

1、Tomcat介绍

免费的、开放源代码的Web应用服务器
Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目
由Apache、Sun和一些公司及个人共同开发而成
深受Java爱好者的喜爱,并得到部分软件开发商的认可
目前比较流行的Web应用服务器

2、Tomcat三个核心组件

Tomcat 由一系列的组件构成,其中核心的组件有三个
在这里插入图片描述
在这里插入图片描述

3、Java Servlet

运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP
服务器上的数据库或应用程序之间的中间层。使用Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。与CGI(公共网关接口)功能相类似。

4、JSP

JSP全称Java Server Pages,一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。
JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

二、Tomcat顶层架构

1、Tomcat中最顶层的容器是Server, 代表着整个服务器,一 个Server可以包含至少一 个Service,用于具体提供服务。
2、Service主要包含两个部分:Connector和Container。Tomcat的心脏就是这两个组件,这两个组件的作用: Connector用于处理连接相关的事情,并提供Socket与Request和Response相关的转化;Container用于封装和管理Servlet, 以及具体处理Request请求。
3、一个Tomcat中只有一-个Server, 一个Server可以包含多个Service, 一个Service只有一个Container, 但是可以有多个Connectors, 因为一个服务可以有多个连接,如同时提供Http和Https链接, 也可以提供向相同协议不同端口的连接。
4、多个Connector 和一个Container 就形成了一个Service, 有了Service 就可以对外提供服务了,但是Service还要一个生存的环境,必须要有人能够给她生命、掌握其生死大权,那就非Server 莫属了!所以整个Tomcat的生命周期由Server控制。另外,上述的包含关系或者说是父子关系,都可以在tomcat的conf目录下的server.xml配置文件(主配置文件)中看出。
5、server . xml中定义 这会让Tomcat6启动一 个server实例(即一 个JVM),它监听在8005端口以接收“SHUTDOWN"命令,如果接收到了就会关闭Tomcat。各Server的定义不能使用同一个端口,这意味着如果在同一个物理机上启动了多个Server实例,必须配置它们使用不同的端口。
在这里插入图片描述

Container容器

Container用于封装和管理Servlet,以及具体处理Request请求,在Connector内部把喊了4个子容器。4个子容器的作用分别是:
在这里插入图片描述

三、Tomcat请求过程

1、用户在浏览器中输入该网址,请求被发送到本机端口8080,被在那里监听的CoyoteHTTP/1.1Connector获得;
2、Connector把该请求交给它所在的Service的Engine (Container) 来处理,并等待Engine的回应;
3、Engine获得请求localhost/test/ index. jsp, 匹配所有的虚拟主机Host;
4、Engine匹配到名为localhost的Host (即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhost的Host获得请求/ test/ index. jsp, 匹配它所拥有的所有Context。Host匹配到路径为/test的Context (如果匹配不到就把该请求交给路 径名为“”的Context去处理) ;
5、path="/test"的Context获得请求/ index. jsp, 在它的mapping table中寻找出对应的Servlet。 Context匹配到URL
Pattern为* . j sp的Servlet, 对应于JspServlet类;
6、构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet ()或doPost(),执行业务逻辑、数据存储等
7、Context把执行完之后的HttpServletResponse对象返回给Host;
8、Host把HttpServletResponse对象返回给Engine;
9、Engine把HttpServletResponse对象返回Connector;
10、Connector把HttpServletResponse对象返回给客户Browser
在这里插入图片描述

三、Tomcat服务部署

1、关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
在这里插入图片描述

2、安装JDK

cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version在这里插入图片描述
在这里插入图片描述

3、设置JDK环境变量

vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.: J A V A H O M E / l i b / t o o l s . j a r : JAVA_HOME/lib/tools.jar: JAVAHOME/lib/tools.jar:JAVA_HOME/lib/dt.jar
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH

source /etc/profile.d/java.sh
java -version
在这里插入图片描述
在这里插入图片描述
public class hello {
public static void main(String[] args){
System.out.println(“Hello world!”);
}
}

javac hello.java
java hello
在这里插入图片描述
在这里插入图片描述

4、安装启动Tomcat

cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
##启动tomcat ##
#后台启动
/usr/local/tomcat/bin/startup.sh

/usr/local/tomcat/bin/catalina.sh start
#前台启动
/usr/local/tomcat/bin/catalina.sh run

netstat -natp | grep 8080
浏览器访问Tomcat的默认主页 http://192.168.161.128:8080
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

5、优化tomcat启动速度

第一次启动tomcat可能会发现 Tomcat 启动很慢,默认情况下可能会需要几十秒,可以修改jdk参数进行改。
vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security
–117行–修改
securerandom.source=file:/dev/urandom

/dev/urandom是/dev/random的非阻塞版本,即当熵池中没有可取的随机数时,读取/dev/urandom设备仍然会返回一个随机数,只是该随机数的安全性理论上不高。如果应用对安全性要求很高,那么应该使用/dev/random。

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

ll /usr/local/tomcat/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.Tomcat多站点配置

在实际生产中,很多时候公司会有多个项目需要运行,一般不会在一台服务器上配置多个tomcat服务,这样会大大消耗系统资源。此时,就需要使用tomcat虚拟主机。
1.创建xy和xiayan项目目录和文件
mkdir -p /usr/local/tomcat/webapps/dch
mkdir -p /usr/local/tomcat/webapps/dzh
echo “wellcome to www.dch.com” >/usr/local/tomcat/webapps/dch/index.jsp
echo “wellcome to www.dzh.top” >/usr/local/tomcat/webapps/dzh/index.jsp
2.添加域名映射
echo “192.168.161.135 www.dch.com www.dzh.com” >>/etc/hosts
在这里插入图片描述
在这里插入图片描述

修改配置文件
vim /usr/local/tomcat/conf/server.xml
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值