tomcat部署及优化
1.tomcat概述
免费的、开放源代码的web应用服务器;由Apache和Sun和一些公司及个人共同开发而成;深受Java爱好者的喜爱;目前比较流行的Web应用服务器
2.tomcat核心组件
Web容器:完成Web服务的功能(web–可以通过https来访问的一个页面;封装了一组文件;集中化管理:一组成员对象)
Servlet容器:名为catalina,处理Servlet代码
JSP容器:将JSP动态网页翻译成Servlet
index.php—>php
index.jsp—>tomcat
html----------->nginx
2.1tomcat由哪些系列的组件结构
Web容器:完成Web服务的功能(web–可以通过https来访问的一个页面;封装了一组文件;集中化管理:一组成员对象)
Servlet容器:名为catalina,处理Servlet代码
JSP容器:将JSP动态网页翻译成Servlet
2.2tomcat核心组件如何交互
2.3tomcat功能组件结构
connector:负责对外接收和1响应请求,处理后传递给容器做业务处理,最后将处理结果响应给外界
container:负责对内处理业务逻辑。其内部由Engine、Host、Context和Wrapper四个容器组成,用于管理和调用Servlet相关逻辑
Service:对外提供的Web服务。主要包含Connector和Container两个核心组件
Container结构分析
Container四个子容器
Engine:引擎,用来管理多个虚拟主机,一个service最多只能有Engine
Host:代表一个虚拟主机,也可以叫站点,通过配置Host就可以添加站点
Context:代表一个Web应用,包含多个Servlet在封装器
Wrapper:封装器,容器的最低层。每一个Wrapper封装着一个Servlet,负责对象实例的创建、执行和销毁功能
3.tomcat处理请求(内部数据流向)
1.用户在浏览器中输入网址,请求被发送到本机端口8080被在那里监听的Connector获得
2.Connector把该请求交给它所在的Service的Engine(Container)来处理,并等待Engine的回应
3.请求在Engine、Host、Context和Wrapper这四个容器之间层层调用,最后在Servlet中执行对应的业务逻辑,数据存储
4.执行完之后的请求响应在Context、Host、Engine容器之间层层返回给Connector,并通过Connector返回给客户端
4.tomcat部署步骤
1.关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下
2.安装JDK
3.设置JDK环境变量
vim /etc/profile.d/java.sh
4.vim Hello.java
5.javac Hello.java
java Hello
4.安装启动Tomcat
5.启动tomcat
浏览器访问Tomcat的默认主页 http://192.168.109.70:8080
5.优化tomcat启动速度
vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security
securerandom.source=file:/dev/urandom
5.tomcat主要目录说明
bin:存放启动和关闭Tomcat的脚本文件,比较常用的是 catalina.sh、startup.sh、shutdown.sh三个文件
●conf:存放Tomcat 服务器的各种配置文件,比较常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四个文件。
① server.xml: Tomcat的主配置文件,包含Service,Connector,Engine,Realm,Valve,Hosts主组件的相关配置信息;
② context.xml:所有host的默认配置信息;
③ tomcat-user.xml:Realm认证时用到的相关角色、用户和密码等信息,Tomcat自带的manager默认情况下会用到此文件,在Tomcat中添加/删除用户,为用户指|定角色等将通过编辑此文件实现;
④ web.xml:遵循Servlet规范标准的配置文件,用于配置servlet,并为所有的web应用程序提供包括MIME映射等默认配置信息;
●lib:存放Tomcat运行需要的库文件的jar 包,一般不作任何改动,除非连接第三方服务,比如 redis,那就需要添加相对应的jar 包
●logs:存放 Tomcat 执行时的日志
●temp:存放 Tomcat 运行时产生的文件
●webapps:存放 Tomcat 默认的 Web 应用部署目录
●work:Tomcat工作日录,存放jsp编译后产生的class文件,一般清除Tomcat缓存的时候会使用到
●src:存放Tomcat 的源代码
6.tomcat虚拟机配置
例如现在新增两个域名 www.kgc.com 和 www.benet.com, 希望通过这两个域名访问到不同的项目内容
1.创建 kgc 和 benet 项目目录和文件
2.修改 Tomcat 主配置文件 server.xml
–165行前–插入
<Host name="www.kgc.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/kgc" path="" reloadable="true" />
</Host>
<Host name="www.benet.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/benet" path="" reloadable="true" />
</Host>
开启
3.客户端访问
浏览器访问 http://www.kgc.com:8080/ 页面显示This is kgc page!
浏览器访问 http://www.benet.com:8080/ 页面显示This is benet page!
7.tomcat优化
vim /usr/local/tomcat/conf/server.xml
7.1tomcat配置文件优化
7.2Java虚拟机(Java)调优
8.tomcat多实例部署
1.安装好 jdk
2.安装 tomcat
3.配置 tomcat 环境变量
4.修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号
vim /usr/local/tomcat/tomcat2/conf/server.xml
5.修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
vim /usr/local/tomcat/tomcat1/bin/startup.sh
添加一下内容
vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
vim /usr/local/tomcat/tomcat2/bin/startup.sh
vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
6.启动各 tomcat 中的 /bin/startup.sh
/usr/local/tomcat/tomcat2/bin/startup.sh
7.浏览器访问测试