千家信息网

CentOS7系统部署安装Tomcat服务(理论+实战)

发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,1、Tomcat 介绍自从 JSP 发布之后,推出了各式各样的 JSP 引擎。Apache Group 在完成 GNUJSP1.0 的开发以后,开始考虑在 SUN 的 JSWDK 基础上开发一个可以直
千家信息网最后更新 2024年11月25日CentOS7系统部署安装Tomcat服务(理论+实战)

1、Tomcat 介绍

自从 JSP 发布之后,推出了各式各样的 JSP 引擎。Apache Group 在完成 GNUJSP1.0 的开发以后,开始考虑在 SUN 的 JSWDK 基础上开发一个可以直接提供 Web 服务的 JSP 服务器,当然同时也支持 Servlet, 这样 Tomcat 就诞生了。

Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。其被 JavaWorld 杂志的编辑选为 2001 年度最具创新的 Java 产品,同时它又是 sun 公司官方推荐的 Servlet和 JSP 容器,因此其越来越多的受到软件公司和开发人员的喜爱。由于有了 Sun 的参与和支持,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和 JSP 2.0 规范。因为 Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。

Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好 Apache 服务器,可利用它响应 HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上,Tomcat 是 Apache服务器的扩展,但运行时它是独立运行的,所以当运行 Tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

当配置正确时,Apache 为 HTML 页面服务,而 Tomcat 实际上运行 JSP 页面和 Servlet。另外,Tomcat 和 IIS 等 Web 服务器一样,具有处理 HTML 页面的功能,另外它还是一个 Servlet和 JSP 容器,独立的 Servlet 容器是 Tomcat 的默认模式。不过,Tomcat 处理静态 HTML 的能力不如 Apache 服务器。

2、Tomcat 核心组件

通常意义上的 Web 服务器接受请求后,只是单纯地响应静态资源,如 HTML 文件,图片文件等,不能在后端进行一定的处理操作。Tomcat 是 Apache 下的一个子项目,它具备 Web服务器的所有功能,不仅可以监听接受请求并响应静态资源,而且可以在后端运行特定规范的 Java 代码 Servlet,同时将执行的结果以 HTML 代码的形式写回客户端。

Tomcat 由一系列的组件构成,其中核心的组件有三个:

1)Web 容器:完成 Web 服务器的功能。2)Servlet 容器:名字为 catalina,用于处理 Servlet 代码。3)JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码。

3、Tomcat处理请求过程

1.用户在浏览器中输入网址localhost:8080/test/index.jsp,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得;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为*.jsp的Servlet,对应于JspServlet类;6.构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost(),执行业务逻辑、数据存储等;7.Context把执行完之后的HttpServletResponse对象返回给Host;8.Host把HttpServletResponse对象返回给Engine;9.Engine把HttpServletResponse对象返回Connector;10.Connector把HttpServletResponse对象返回给客户Browser。

4、Tomcat目录结构

[root@localhost ~]# ll /usr/local/tomcat/总用量 124drwxr-x--- 2 root root  4096 3月   7 22:34 bin-rw-r----- 1 root root 19203 2月   5 00:32 BUILDING.txtdrwx------ 3 root root   254 3月   7 22:36 conf-rw-r----- 1 root root  6095 2月   5 00:32 CONTRIBUTING.mddrwxr-x--- 2 root root  4096 3月   7 22:34 lib-rw-r----- 1 root root 57092 2月   5 00:32 LICENSEdrwxr-x--- 2 root root   197 3月   7 22:36 logs-rw-r----- 1 root root  2333 2月   5 00:32 NOTICE-rw-r----- 1 root root  3255 2月   5 00:32 README.md-rw-r----- 1 root root  6854 2月   5 00:32 RELEASE-NOTES-rw-r----- 1 root root 16262 2月   5 00:32 RUNNING.txtdrwxr-x--- 2 root root    30 3月   7 22:34 tempdrwxr-x--- 7 root root    81 2月   5 00:31 webappsdrwxr-x--- 3 root root    22 3月   7 22:36 work----------------------------------------------------------●bin存放启动和关闭 Tomcat 的脚本文件,比较常用的是 catalina.sh、startup.sh、shutdown.sh 三个文件●conf存放 Tomcat 服务器的各种配置文件,比较常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四个文件。●lib存放 Tomcat 服务器的 jar 包,一般不作任何改动,除非连接第三方服务,比如 redis,那就需要添加相对应的 jar 包●logs存放 Tomcat 日志●temp存放 Tomcat 运行时产生的文件●webapps存放项目资源的目录●workTomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到

5、Tomcat部署步骤

(1)宿主机将所需工具包共享出去

(2)挂载工具包并安装JDK

在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境。

[root@localhost ~]# mkdir /mnt/tools[root@localhost ~]# mount.cifs //192.168.100.50/tools /mnt/tools   #挂载共享文件到Linux本地目录中Password for root@//192.168.100.50/tools:  [root@localhost ~]# cd /mnt/tools/tomcat/   #进入本地目录查看[root@localhost tomcat]# ls12D18CFCD6599AFF0445766ACC4CA231C5025773.torrent  apache-jmeter-5.1.zip        jdk-8u201-linux-x64.rpmapache-jmeter-5.1                                 apache-tomcat-9.0.16.tar.gz  tomcat优化压测.jmx[root@localhost tomcat]# rpm -ivh jdk-8u201-linux-x64.rpm    #安装JDK

(3)设置环境变量/etc/profile文件

[root@localhost tomcat]# cd /usr/java/jdk1.8.0_201-amd64/[root@localhost jdk1.8.0_201-amd64]# pwd/usr/java/jdk1.8.0_201-amd64   #确认JDK安装的目录路径[root@localhost jdk1.8.0_201-amd64]# vim /etc/profile#在文件的末行追加一下三条申明条目export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64#申明java的工作目录export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar#申明java类文件的位置export PATH=$JAVA_HOME/bin:$PATH#申明java环境变量[root@localhost jdk1.8.0_201-amd64]# source /etc/profile   #生效环境变量[root@localhost jdk1.8.0_201-amd64]# [root@localhost jdk1.8.0_201-amd64]# java -version   #查看版本java version "1.8.0_201"Java(TM) SE Runtime Environment (build 1.8.0_201-b09)Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)[root@localhost jdk1.8.0_201-amd64]# 

(4)安装并启动Tomcat服务

[root@localhost jdk1.8.0_201-amd64]# cd /mnt/tools/tomcat/[root@localhost tomcat]# tar zxvf apache-tomcat-9.0.16.tar.gz -C /usr/local/#解压tomcat包到/usr/local/目录中[root@localhost tomcat]# cd /usr/local/[root@localhost local]# mv apache-tomcat-9.0.16/ tomcat     #改名apache-tomcat-9.0.16文件为tomcat[root@localhost local]# lsbin  etc  games  include  lib  lib64  libexec  sbin  share  src  tomcat[root@localhost local]# [root@localhost local]# cd tomcat/bin/   #切换到tomcat目录下的bin目录,这里有控制tomcat服务的脚本[root@localhost bin]# lsbootstrap.jar       ciphers.bat                   configtest.bat  digest.sh         setclasspath.sh  startup.sh            tool-wrapper.shcatalina.bat        ciphers.sh                    configtest.sh   makebase.bat      shutdown.bat     tomcat-juli.jar       version.batcatalina.sh         commons-daemon.jar            daemon.sh       makebase.sh       shutdown.sh      tomcat-native.tar.gz  version.shcatalina-tasks.xml  commons-daemon-native.tar.gz  digest.bat      setclasspath.bat  startup.bat      tool-wrapper.bat[root@localhost bin]# ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/#创建tomcat启动脚本的软链接到系统目录中,方便系统识别[root@localhost bin]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/#创建tomcat关闭脚本的软链接到系统目录中,方便系统识别[root@localhost bin]# startup.sh     #启动tomcat服务Using CATALINA_BASE:   /usr/local/tomcatUsing CATALINA_HOME:   /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME:        /usr/java/jdk1.8.0_201-amd64Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jarTomcat started.[root@localhost bin]# systemctl stop firewalld.service    #关闭防火墙[root@localhost bin]# setenforce 0   #关闭增强型安全功能[root@localhost bin]# netstat -ntap | grep 8080   #查看tomcat服务的8080端口状态tcp6       0      0 :::8080                 :::*                    LISTEN      52230/java          [root@localhost bin]#

(5)浏览Tomcat的默认主页

在浏览器中输入http://192.168.52.132:8080即可访问到网页

(6)优化Tomcat启动时间

[root@localhost bin]# cd /usr/java/jdk1.8.0_201-amd64/jre/lib/security/[root@localhost security]# lsblacklist  blacklisted.certs  cacerts  java.policy  java.security  javaws.policy  policy  trusted.libraries[root@localhost security]# vim java.security   #修改java.security参数securerandom.source=file:/dev/urandom#检索到random参数条目,将random修改为urandom,以缩短启动时间[root@localhost security]# startup.sh        #再次启动服务,启动时间明显缩短Using CATALINA_BASE:   /usr/local/tomcatUsing CATALINA_HOME:   /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME:        /usr/java/jdk1.8.0_201-amd64Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jarTomcat started.
0