- 一、tomcat概述
- 二、Tomcat的组件构成
- 三、Tomcat介绍
- 1、Tomcat核心组件
- 2、Tomcat处理请求过程
- 四、Tomcat部署
- 1.安装jdk,并设置jdk环境变量
- 2.测试
- 五、安装启动Tomcat
- 1、解压tomcat
- 2、优化管理
- 六、Tomcat 虚拟主机配置
、Tomcat概述
Tomcat是一款免费、开放源代码的Web应用服务器,是Apache软件基金会的一个核心开源项目,属于轻量级应用服务器。
Apache:Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非盈利性组织,官网为:https://tomcat.apache.org/
二、Tomcat的组件构成Tomcat由一系列的组件构成,其中核心的组件有三个
(1)Web容器:完成Web服务器的功能HTTPHTTPS请求的接受和响应。
(2)Servlet容器:由名称为catalina的脚本来处理Servlet代码(具体的一个任务,从数据库中拿取数据给与前端)。
(3)JSP容器:用于将JSP动态网页翻译成Servlet代码index.htmlindex.phpindex.jsp
(1)Web容器
负责WEB服务的TCP/IP、HTTP等协议响应、处理(nginx处理静态页面的应用交互)
(2)JSP容器(JAVAscriptspage)
Tomcat中做为JAVA前端展示的一个组件index.jsp,因为index.jsp标签,标签中会嵌套了很多JAVA代码,书写形式是,<%开头以%>,是一种servlet(java后端逻辑业务的任务)。
JSP(全称:JavaServerPages)是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。JSP是一种Javaservlet,主要用于实现Javaweb应用程序的用户界面部分。JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。JSP容器内提供了多个以index.jsp为结尾的JAVA前端页面展示,而index.jsp中由很多HTML标签,HTML标签中会嵌套很多JAVA代码,这些JAVA代码,最终会被翻译为Servlet代码,(而本身JSP容器不具备解析与分析代码的功能,所以会给交给Servlet容器)。
(3)Servlet容器
Servlet翻译index.jsp中这些java代码,执行一些servlet任务操作,比如数据库交互、加密、支付宝、人脸识别,处理完后,将这些数据返回给JSP,通过jsp中的index.jsp展示出来(JAVA)。动态交互处理,会将JSP传递过来的代码翻译为Servlet,由catalina脚本帮忙处理的servlet代码,主要处理后端逻辑业务(比如与数据库交互、加密、支付宝、人脸识别等),catalina实际处理的是Servlet代码,而Servlet代码是由Java编写的。
2、Tomcat处理请求过程(1)用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote(Tomcat 连接器框架/基础环境) HTTP/1.1 Connector(连接器,用于对接请求)获得。
(2)接受请求之后交给container(容器)中的engine进行处理,engine(引擎)是做为容器运行的动力核心。
(3)基于引擎支撑,容器中会跑很多host虚拟主机/项目,这些虚拟主机中也会有很多context(当前程序所处的环境),此处的context功能可以理解为:将JAVA前端和JAVA后端连接的展示的枢纽。
(4) Servlet处理完后会返回给context。
(5)context返回给engine引擎。
(6)engine返回给端口。
(7) 端口最后将页面展现给用户。
四、Tomcat部署 1.安装jdk,并设置jdk环境变量[root@localhost opt]# rpm -ivh jdk-8u201-linux-x64.rpm [root@localhost opt]# java -version #查看当前系统环境下java版本 openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-b13) OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode) [root@localhost opt]# vim /etc/profile.d/java.sh #编辑环境变量 export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64 #定义JAVA_HOME变量的路径 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar #指定CLASSPATH变量的路径 export PATH=$JAVA_HOME/bin:$PATH #将JAVA的bin目录加入到PATH变量
CLASSPATH:编译、运行Java程序时(tomcat),JRE会去该变量指定的路径中搜索所需的类( .class)文件。
dt.jar:是关于运行环境的类库,主要是swing的包。
tools.jar:主要是一 些jdk工具的类库,包括javac,java,javap,javadoc等。
JDK:java development kit (java开发工具)
JRE:java runtime environment (java运行时环境)
JVM:java virtuak machine (java虚拟机) ,使java程序可以在多种平台上运行class文件。
[root@localhost opt]# source /etc/profile.d/java.sh #加载生效
[root@localhost opt]# java -version #查看版本
java version “1.8.0_201”
Java™ SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot™ 64-Bit Server VM (build 25.201-b09, mixed mode)
编个脚本测试一下
public class Hello {
public static void main(String[] args){
System.out.println("Hello World!");
}
}
[root@localhost opt]# javac Hello.java #(javac 基础命令,用于编译,用于将java--》class)
[root@localhost opt]# java Hello #启动脚本
Hello World!
五、安装启动Tomcat
1、解压tomcat
cd /opt tar zxvf apache-tomcat-9.0.16.tar.gz mv apache-tomcat-9.0.16 /usr/local/tomcat2、优化管理
[root@localhost opt]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/ #启动 [root@localhost opt]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/ #关闭
(4)开启服务
[root@localhost tomcat]# startup.sh Using CATALINA_base: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@localhost tomcat]# netstat -natp | grep 8080 tcp6 0 0 :::8080 :::* LISTEN 26348/java
(5)查看页面
(6)优化 Tomcat 启动速度
生产环境中第一次启动tomcat可能会发现tomcat启动很慢,默认情况下可能需要几十秒,此时可以修改jdk参数进行优化。
[root@localhost ~]# vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security securerandom.source=file:/dev/urandom #修改第117行,/dev/random和/dev/urandom都是伪终端,
(7)JRE默认使用 /dev/random作为随机数来源,当熵池大小不够的时候,random会很慢,造成随机数生成调用阻塞。
8)熵池(安全方向,随机值)
概念:linux是根据系统的熵池来产生随机数的。熵池就是系统当前的环境噪音,环境噪音的来源很多,键盘的输入、鼠标的移动、内存的使用、文件的使用量、进程数量等等。当系统的熵不够大的时候,则系统产生的随机数随机效果就不是很好,也就是说更容易被人猜测出来。
(9)重启tomcat
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
很多时候公司会有多个项目需要运行,那么肯定不可能是一台服务器上运行多个Tomcat服务,这样会消耗太多的系统资源。此时,就需要使用到Tomcat虚拟主机。例如现在新增两个域名www.xgp.com和www.xb.com,希望通过这两个域名访问到不同的项目内容。(tomcat作为web服务器)
1、创建xgp和xb项目目录和文件
(2)创建对应的目录和文件
[root@localhost /]# mkdir /usr/local/tomcat/webapps/xgp [root@localhost /]# mkdir /usr/local/tomcat/webapps/xb [root@localhost /]# echo "this is xgp page" > /usr/local/tomcat/webapps/xgp/index.jsp [root@localhost /]# echo "this is xb page" > /usr/local/tomcat/webapps/xb/index.jsp
开启关闭
[root@localhost /]# vim /usr/local/tomcat/conf/server.xml [root@localhost /]# vim /usr/local/tomcat/conf/server.xml
浏览器访问验证



