温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-05-28 19:22:07 来源:网络 阅读:219 作者:wx5d2c2d660c282 栏目:系统运维

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/
总用量 124
drwxr-x--- 2 root root  4096 3月   7 22:34 bin
-rw-r----- 1 root root 19203 2月   5 00:32 BUILDING.txt
drwx------ 3 root root   254 3月   7 22:36 conf
-rw-r----- 1 root root  6095 2月   5 00:32 CONTRIBUTING.md
drwxr-x--- 2 root root  4096 3月   7 22:34 lib
-rw-r----- 1 root root 57092 2月   5 00:32 LICENSE
drwxr-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.txt
drwxr-x--- 2 root root    30 3月   7 22:34 temp
drwxr-x--- 7 root root    81 2月   5 00:31 webapps
drwxr-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
存放项目资源的目录

●work
Tomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到

5、Tomcat部署步骤

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

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

(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]# ls
12D18CFCD6599AFF0445766ACC4CA231C5025773.torrent  apache-jmeter-5.1.zip        jdk-8u201-linux-x64.rpm
apache-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]# ls
bin  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]# ls
bootstrap.jar       ciphers.bat                   configtest.bat  digest.sh         setclasspath.sh  startup.sh            tool-wrapper.sh
catalina.bat        ciphers.sh                    configtest.sh   makebase.bat      shutdown.bat     tomcat-juli.jar       version.bat
catalina.sh         commons-daemon.jar            daemon.sh       makebase.sh       shutdown.sh      tomcat-native.tar.gz  version.sh
catalina-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/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 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即可访问到网页

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

(6)优化Tomcat启动时间

[root@localhost bin]# cd /usr/java/jdk1.8.0_201-amd64/jre/lib/security/
[root@localhost security]# ls
blacklist  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/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.
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI