Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。Tomcat 和 IIS 等 Web 服务器一样,具有处理 HTML 页面的功能。不过,Tomcat 处理静态 HTML 的能力不如 Apache 服务器。

  因为Tomcat 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。支持JSP网站的收费版web服务器:oracle 的 weblogic、IBM 的 websphere。

(1).什么是中间件

  中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。

  中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括web服务器、事务监控器和消息队列软件。

  中间件是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。

  中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

(2).下载安装包

  JDK程序包,下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html。具体选择什么版本看自己的需要,我这里使用的是jdk-8u191-linux-x64.tar.gz。

  Tomact程序包,下载地址:http://tomcat.apache.org/。选择版本在左侧,我这里使用的是Core(核心)里的apache-tomcat-8.5.35.tar.gz。

  然后将下载好的程序包上传。这两个都是二进制包,解压后可以直接使用。

(3).JDK的安装和配置

  1)首先查看系统中是否存在openjdk,如果存在将其卸载。

[root@youxi1 ~]# java -version
-bash: java: 未找到命令  //我的系统没有,如果显示的是openjdk version ...,那就是openjdk
[root@youxi1 ~]# yum -y remove java-*  //可以使用这个命令卸载自带的openjdk

  2)将文件解压到指定地址

[root@youxi1 ~]# tar zxf jdk-8u191-linux-x64.tar.gz -C /usr/local/

  3)配置环境变量,刷新

[root@youxi1 ~]# vim /etc/profile.d/jdk8.sh
export JAVA_HOME=/usr/local/jdk1.8.0_191
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jar/tools.jar:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
[root@youxi1 ~]# . /etc/profile.d/jdk8.sh

  也可以写入/etc/profile文件。

  4)测试

[root@youxi1 ~]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

(4).Tomcat的安装和配置

  1)将文件解压到指定地址

[root@youxi1 ~]# tar zxf apache-tomcat-8.5.35.tar.gz -C /usr/local/

  这里我嫌解压后的文件夹名称太长了,修改文件夹名称

[root@youxi1 ~]# mv /usr/local/apache-tomcat-8.5.35 /usr/local/tomcat8.5

  顺便说明一下解压后目录下存在的各个文件夹的作用:

[root@youxi1 ~]# ll /usr/local/tomcat8.5/ | grep drw
drwxr-x--- 2 root root 4096 6月 29 17:09 bin  //启动和关闭的脚本目录,存放脚本
drwx------ 2 root root 238 11月 4 2018 conf  //配置文件目录,存放配置文件
drwxr-x--- 2 root root 4096 6月 29 17:09 lib  //内库,依赖包目录
drwxr-x--- 2 root root 6 11月 4 2018 logs  //日志目录,存放日志
drwxr-x--- 2 root root 30 6月 29 17:09 temp  //临时目录,存放临时文件
drwxr-x--- 7 root root 81 11月 4 2018 webapps  //Web目录
drwxr-x--- 2 root root 6 11月 4 2018 work  //工作目录,存放编译产生的class和servlet文件

  据说,bin目录下的shutdown.sh并不好用,一般会使用kill命令直接杀死tomcat。

  2)创建一个启动脚本,并加入开机自启

[root@youxi1 ~]# vim /etc/init.d/tomcat
#!/bin/bash
#
# tomcat startup script for the Tomcat server
#
# chkconfig: 345 80 20
# description: start the tomcat deamon
#
# Source function library
JAVA_HOME=/usr/local/jdk1.8.0_191  //这里指定JAVA的地址
export JAVA_HOME
CATALANA_HOME=/usr/local/tomcat8.5  //这里指定Tomcat的地址
export CATALANA_HOME
case "$1" in
start)
echo "Starting Tomcat..."
$CATALANA_HOME/bin/startup.sh
;;
stop)
echo "Stopping Tomcat..."
$CATALANA_HOME/bin/shutdown.sh
;;
restart)
echo "Stopping Tomcat..."
$CATALANA_HOME/bin/shutdown.sh
sleep 2
echo
echo "Starting Tomcat..."
$CATALANA_HOME/bin/startup.sh
;;
*)
echo "Usage: $prog {start|stop|restart}"
;;
esac
exit 0
[root@youxi1 ~]# chmod +x /etc/init.d/tomcat  //添加执行权限
[root@youxi1 ~]# chkconfig --add tomcat  //添加到chkconfig管理
[root@youxi1 ~]# chkconfig --list tomcat
tomcat 0:关 1:关 2:关 3:开 4:开 5:开 6:关
[root@youxi1 ~]# chkconfig --level 2345 tomcat on  //如果上面没有开启,可以使用这条命令,当然只需要345就行了
[root@youxi1 ~]# chkconfig --list tomcat  //这是做的示范
tomcat 0:关 1:关 2:开 3:开 4:开 5:开 6:关

  3)启动tomcat

[root@youxi1 ~]# systemctl start tomcat
[root@youxi1 ~]# systemctl status tomcat
● tomcat.service - SYSV: start the tomcat deamon
Loaded: loaded (/etc/rc.d/init.d/tomcat; bad; vendor preset: disabled)
Active: active (running) since 六 2019-06-29 17:47:23 CST; 9s ago
Docs: man:systemd-sysv-generator(8)
Process: 1744 ExecStart=/etc/rc.d/init.d/tomcat start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/tomcat.service
└─1754 /usr/local/jdk1.8.0_191/bin/java -Djava.util.logging.config... 6月 29 17:47:23 youxi1 systemd[1]: Starting SYSV: start the tomcat deamon...
6月 29 17:47:23 youxi1 tomcat[1744]: Starting Tomcat...
6月 29 17:47:23 youxi1 tomcat[1744]: Using CATALINA_BASE: /usr/local/tom....5
6月 29 17:47:23 youxi1 tomcat[1744]: Using CATALINA_HOME: /usr/local/tom....5
6月 29 17:47:23 youxi1 tomcat[1744]: Using CATALINA_TMPDIR: /usr/local/tom...mp
6月 29 17:47:23 youxi1 tomcat[1744]: Using JRE_HOME: /usr/local/jdk...91
6月 29 17:47:23 youxi1 tomcat[1744]: Using CLASSPATH: /usr/local/tom...ar
6月 29 17:47:23 youxi1 tomcat[1744]: Tomcat started.
6月 29 17:47:23 youxi1 systemd[1]: Started SYSV: start the tomcat deamon.
Hint: Some lines were ellipsized, use -l to show in full.

  4)如果存在防火墙记得添加端口号

[root@youxi1 ~]# firewall-cmd --permanent --zone=public --add-port=8080/tcp
success
[root@youxi1 ~]# firewall-cmd --reload
success
[root@youxi1 ~]# firewall-cmd --permanent --zone=public --list-ports
8080/tcp

  5)测试

  在Windows上查看

(5).扩展:如果一台服务器上存在多个Tomcat

  此时,创建启动脚本容易写错,导致误杀。所以一般都会到需要执行的tomcat目录下,再执行脚本。当然写启动脚本也可以,但需要注意启动脚本的名称要方便识别是用来做什么的,然后脚本内部的地址需要仔细检测。

  如果不写启动脚本,这时候想要Tomcat开机自启,请将启动命令(当然也可以将启动命令做成一个脚本文件)写入/etc/rc.d/rc.local文件,并授予执行权限。如下:

[root@youxi1 ~]# vim /etc/rc.d/rc.local
xport JAVA_HOME=/usr/local/jdk1.8.0_191  //必须有这一条,否则无法执行Tomcat的startup.sh
/usr/local/tomcat8.5/bin/startup.sh
[root@youxi1 ~]# chmod +x !$  //授权
chmod +x /etc/rc.d/rc.local

  重启服务器来验证是否开机自启

[root@youxi1 ~]# ss -tlunp | grep 8080
tcp LISTEN 0 100 :::8080 :::* users:(("java",pid=1092,fd=49))

(6).如何查看tomcat的版本

  有两种方法:一种是直接提供的version.sh脚本

[root@youxi1 ~]# /usr/local/tomcat8.5/bin/version.sh
Using CATALINA_BASE: /usr/local/tomcat8.5
Using CATALINA_HOME: /usr/local/tomcat8.5
Using CATALINA_TMPDIR: /usr/local/tomcat8.5/temp
Using JRE_HOME: /usr/local/jdk1.8.0_191
Using CLASSPATH: /usr/local/tomcat8.5/bin/bootstrap.jar:/usr/local/tomcat8.5/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.5.35
Server built: Nov 3 2018 17:39:20 UTC
Server number: 8.5.35.0
OS Name: Linux
OS Version: 3.10.0-862.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_191-b12
JVM Vendor: Oracle Corporation

  另一种是通过提供的catalina.sh脚本来查看

[root@youxi1 ~]# /usr/local/tomcat8.5/bin/catalina.sh version
Using CATALINA_BASE: /usr/local/tomcat8.5
Using CATALINA_HOME: /usr/local/tomcat8.5
Using CATALINA_TMPDIR: /usr/local/tomcat8.5/temp
Using JRE_HOME: /usr/local/jdk1.8.0_191
Using CLASSPATH: /usr/local/tomcat8.5/bin/bootstrap.jar:/usr/local/tomcat8.5/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.5.35
Server built: Nov 3 2018 17:39:20 UTC
Server number: 8.5.35.0
OS Name: Linux
OS Version: 3.10.0-862.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_191-b12
JVM Vendor: Oracle Corporation

  

CentOS7下搭建Tomcat服务器的更多相关文章

  1. CentOS7下搭建邮件服务器(dovecot + postfix + SSL)

    CentOS   花了基本上两天的时间去配置CentOS7下的邮件服务器.其中艰辛太多了,一定得总结下. 本文的目的在于通过一系列配置,在CentOS 7下搭建dovecot + postfix + ...

  2. CentOS系统下搭建tomcat服务器

    下载相应的linux版jdk和tomcat,本文讲解jdk版本jdk-7u79-linux-x64.tar.gz,tomcat版本apache-tomcat-7.0.69.tar.gz [配置jdk] ...

  3. 在Centos7下搭建Git服务器

    ① 安装 Git ② 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码 ③ 服务器端创建 Git 仓库 ④ 客户端 clone 远程仓库 ⑤ 客户端创建 SSH 公钥和私 ...

  4. Centos7下搭建NFS服务器与连接详解

    一,环境介绍    本实验使用了两台centos7虚拟机,其中         服务器:192.168.1.188    客户端:192.168.1.189 二,实验步骤    192.168.1.1 ...

  5. centos7下搭建solr服务器

    1.Solr的环境 Solr是java开发. 需要安装jdk. 安装环境Linux. 需要安装Tomcat. 1.2. 搭建步骤 第一步:把solr 的压缩包上传到Linux系统 第二步:解压solr ...

  6. centos7下搭建NFS服务器

    NFS是Network File System的缩写,即网络文件系统.客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下. nfs为什么需要RPC?因为NFS支持的功能很多,不同功能会 ...

  7. CentOS7下搭建SVN服务器

    (1).安装SVN 1)安装SVN [root@youxi1 ~]# yum -y install subversion mod_dav_svn [root@youxi1 ~]# cat /etc/s ...

  8. Windows环境下部署Tomcat服务器图文教程

    Tomcat是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选. 本文将详细介绍在Windows环境下 ...

  9. 第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误,

    第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误, 注意:版本,不然会报错 Docker >=1.11Compose >1.6.0 通过d ...

随机推荐

  1. k8s的网络

    K8S的网络中主要存在4种类型的通信:   ①同一Pod内的容器间通信 ②各个Pod彼此间的通信 ③Pod和Service间的通信 ④集群外部流量和Service之间的通信   K8S为Pod和Ser ...

  2. 大数据之路week06--day07(Linux中的mysql的离线安装)

    这里我提供 服务端和客户端的两个jar包的百度云,也是我使用的 链接:https://pan.baidu.com/s/11a3LT-ENZ8n9IF19-VjmWA 提取码:bdls 离线安装Mysq ...

  3. Destoon二开必看执行流程

    <?php 代码首先包含common.inc.php文件 在common.inc.php文件中,首先定义常量. define('IN_DESTOON', true); define('IN_AD ...

  4. 算法:用户喜好--Map与List配合下的查找

    提示:在算法处理过程中,未必就要将出现在前面的作为关键字检索.比如本题,非得先去检索范围,再去判断范围中key的个数.反其道而行,把输入的数字当作关键字,组成Map package test; imp ...

  5. Mybatis之foreach批量插入

    1接口 public boolean insertMembersBatch(@Param("memberList") List<Members> members); @ ...

  6. 远程jupyter+pycharm配置

    前言 作为一个数据工程师,最喜欢的事情就是不停的在现实的服务端环境调试代码的参数.我们在本地的环境与生产的状况决然不同,我们一开始在本地写代码测试再部署到服务端的三板斧就不适用了. 最好的方式可以直接 ...

  7. Mybatis延迟加载, 一级缓存、二级缓存

    延迟加载 概念:MyBatis中的延迟加载,也称为懒加载,是指在进行关联查询时,按照设置延迟规则推迟对关联对象的select查询.延迟加载可以有效的减少数据库压力. (注意:MyBatis的延迟加载只 ...

  8. b/s利用webuploader实现超大文件分片上传、断点续传

    本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案.见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案. 本人在2013年时使用plupload为核心 ...

  9. GitHub中PR(Pull request)操作

    1. 贡献代码: 贡献代码,通俗的说,就是自己修改了代码,希望合并到别人的Repository(仓库)中.将自己的智慧贡献给开源社区.下面将详细讲解步骤 1.1 第一步:fork 在GitHub社区闲 ...

  10. python踩坑记录篇,持续更新

    问题1:python语法错误 错误日志如下: print(a[2])    ^IndentationError: unexpected indent [解决方案]:缩进代码错误导致,将print的缩进 ...