什么是Tomcat

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache HTTP服务器混淆,Apache HTTP服务器是一个用C语言实现的HTTPWeb服务器;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

Tomcat同类产品

  • Resin 服务器

Resin是Caucho公司的产品,是一个非常流行的支持Servlet和JSP的服务器,速度非常快。Resin本身包含了一个支持HTML的Web服务器,这使它不仅可以显示动态内容,而且显示静态内容的能力也毫不逊色,因此许多网站都是使用Resin服务器构建。

  • Jetty 服务器

Jetty是一个纯粹的基于Java的网页服务器和Java Servlet容器。尽管网页服务器通常用来为人们呈现文档,但是Jetty通常在较大的软件框架中用于计算机与计算机之间的通信。Jetty作为Eclipse基金会的一部分,是一个自由和开源项目。

  • JBoss服务器

JBoss是一个种遵从JavaEE规范的、开放源代码的、纯Java的EJB服务器,对于J2EE有很好的支持。JBoss采用JML API实现软件模块的集成与管理,其核心服务又是提供EJB服务器,不包含Servlet和JSP的Web容器,不过它可以和Tomcat完美结合。

  • WebSphere 服务器

WebSphere是IBM公司的产品,可进一步细分为 WebSphere Performance Pack、Cache Manager 和WebSphere Application Server等系列,其中WebSphere Application Server 是基于Java 的应用环境,可以运行于 Sun Solaris、Windows NT 等多种操作系统平台,用于建立、部署和管理Internet和Intranet Web应用程序。

  • WebLogic 服务器

WebLogic 是BEA公司的产品,可进一步细分为 WebLogic Server、WebLogic Enterprise 和 WebLogic Portal 等系列,其中 WebLogic Server 的功能特别强大。WebLogic 支持企业级的、多层次的和完全分布式的Web应用,并且服务器的配置简单、界面友好。对于那些正在寻求能够提供Java平台所拥有的一切应用服务器的用户来说,WebLogic是一个十分理想的选择。

Tomcat安装之yum

先来搜索一下有关Tomcat的软件包

# yum list |grep tomcat
jglobus-ssl-proxies-tomcat.noarch 2.1.0-6.el7 epel
tomcat.noarch 7.0.76-3.el7_4 updates
tomcat-admin-webapps.noarch 7.0.76-3.el7_4 updates
tomcat-docs-webapp.noarch 7.0.76-3.el7_4 updates
tomcat-el-2.2-api.noarch 7.0.76-3.el7_4 updates
tomcat-javadoc.noarch 7.0.76-3.el7_4 updates
tomcat-jsp-2.2-api.noarch 7.0.76-3.el7_4 updates
tomcat-jsvc.noarch 7.0.76-3.el7_4 updates
tomcat-lib.noarch 7.0.76-3.el7_4 updates
tomcat-native.x86_64 1.2.16-1.el7 epel
tomcat-servlet-3.0-api.noarch 7.0.76-3.el7_4 updates
tomcat-webapps.noarch 7.0.76-3.el7_4 updates
tomcatjss.noarch 7.2.1-6.el7 base

在centos7中默认提供Tomcat7版本,安装时只需安装tomcat,tomcat-admin-webapps,tomcat-doc-webapp,tomcat-webapps即可,其它包会自动安装上。

# yum install -y tomcat tomcat-admin-webapps tomcat-docs-webapp tomcat-webapps
Installed:
tomcat.noarch 0:7.0.76-3.el7_4
tomcat-admin-webapps.noarch 0:7.0.76-3.el7_4
tomcat-docs-webapp.noarch 0:7.0.76-3.el7_4
tomcat-webapps.noarch 0:7.0.76-3.el7_4 Dependency Installed:
apache-commons-logging.noarch 0:1.1.2-7.el7
avalon-framework.noarch 0:4.3-10.el7
avalon-logkit.noarch 0:2.1-14.el7
jakarta-taglibs-standard.noarch 0:1.1.2-14.el7_1
tomcat-el-2.2-api.noarch 0:7.0.76-3.el7_4
tomcat-jsp-2.2-api.noarch 0:7.0.76-3.el7_4
tomcat-lib.noarch 0:7.0.76-3.el7_4
tomcat-servlet-3.0-api.noarch 0:7.0.76-3.el7_4 Complete!

Tomcat安装之二进制包

curl -O http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.6/bin/apache-tomcat-9.0.6.tar.gz
  • 解压源码包放在/usr/local目录下
# tar xvf apache-tomcat-9.0.6.tar.gz -C /usr/local/
  • 创建链接文件
ln -sv /usr/local/apache-tomcat-9.0.6 /usr/local/tomcat9
  • 安装JDK

Tomcat9需要JDK8及以上的版本

JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz
  • 配置centos7使用JDK1.8版本
# mkdir -p /usr/local/jdk-oracal
# tar xvf jdk-8u162-linux-x64.tar.gz -C /usr/local/jdk-oracal/
# cd /etc/profile.d/
# vi java1.8.sh
export JAVA_HOME=/usr/local/jdk-oracal/jdk1.8.0_162
export PATH=$JAVA_HOME/bin:$PATH
# source java1.8.sh
# java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
  • 配置tomcat9启动环境
# vi /etc/profile.d/tomcat9.sh
export CATALINA_HOME=/usr/local/tomcat9
export PATH=$TOMCAT_HOME/bin:$PATH
# source /etc/profile.d/tomcat9.sh

官方建议在tomcat安装目录的bin目录下建一个setenv.sh,将JAVA_HOME,JRE_HOME等环境变量信息指定。示例如下:

# cat bin/setenv.sh
CATALINA_HOME=/usr/local/tomcat9
CATALINA_BASE=/usr/local/tomcat9
JAVA_HOME=/usr/local/jdk-oracal/jdk1.8.0_162
JRE_HOME=/usr/local/jdk-oracal/jdk1.8.0_162/jre/
CATALINA_PID=/usr/local/tomcat9/tomcat9.pid
  • 启动Tomcat9
# catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat9
Using CATALINA_HOME: /usr/local/tomcat9
Using CATALINA_TMPDIR: /usr/local/tomcat9/temp
Using JRE_HOME: /usr/local/jdk-oracal/jdk1.8.0_162
Using CLASSPATH: /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jar
Tomcat started.
# ss -tnpl |grep 8080
LISTEN 0 100 :::8080 :::* users:(("java",pid=4177,fd=49))
  • 使用systemd管理tomcat9服务
# cat /usr/lib/systemd/system/tomcat9.service
[Unit]
Description=Apache Tomcat 9
After=syslog.target network.target remote-fs.target nss-lookup.target [Service]
Type=forking
PIDFile=/usr/local/tomcat9/tomcat9.pid
ExecStart=/usr/local/tomcat9/bin/catalina.sh start -DEFOREGRAND
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
RemainAfterExit=yes [Install]
WantedBy=multi-user.target
  • 配置访问tomcat9管理界面

修改conf/tomcat-users.xml

添加如下内容
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
<role rolename="manager-gui"/>
<role rolename="manager-script" />
<user username="admin" password="tomcat" roles="manager-gui,manager-script" />
</tomcat-users>

修改webapps/manager/META-INF目录下的context.xml,在allow行的末尾加上|\d+.\d+.\d+.\d+表示允许所有主机访问。

<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

重启tomcat9生效

Tomcat安装脚本

#!/bin/bash

###########################################################################
# This script used to install and config tomcat9_binary_packet on centos7 #
# #
# write by mifyang at 2018-4-1 writer mail: mifyang@126.com #
########################################################################### src_data_dir="/root/tomcat"
jdk_install_dir="/usr/local/jdk_oracal"
tomcat9_install_dir="/usr/local/tomcat"
jdk_url="http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz"
tomcat9_url="http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.6/bin/apache-tomcat-9.0.6.tar.gz"
jdk_src_name=${jdk_url##*/}
tomcat9_src_name=${tomcat9_url##*/}
# 创建/root/tomcat目录用于存放源码包
if [ ! -d $src_data_dir ];then
mkdir -p $src_data_dir
else
echo "${src_data_dir} 文件夹已存在"
fi
# 下载JDK1.8 下载tomcat9 应该提前下载好,不然下载会占用大量时间
# curl -L:跟踪重定向,,不加-L只能返回302的结果,cookies中有用的内容是同意协议那一部分,Connection: keep-alive这句要加上,否则下载速度会变成蜗牛,-O(大写字母o):下载文件
# cd $src_data_dir
# curl -L http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz -H "Cookie: oraclelicense=accept-securebackup-cookie" -H "Connection: keep-alive" -O # curl http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.6/bin/apache-tomcat-9.0.6.tar.gz -O # 解压二进制源码包到安装目录,并创建软链接
if [ ! -d $jdk_install_dir ];then
mkdir -p $jdk_install_dir
tar xvf $jdk_src_name -C $jdk_install_dir
ln -sv ${jdk_install_dir}/$(ls $jdk_install_dir) ${jdk_install_dir}/jdk8
else
echo "目录已存在"
fi
if [ ! -d $tomcat9_install_dir ];then
mkdir -p $tomcat9_install_dir
tar xvf $tomcat9_src_name -C $tomcat9_install_dir
ln -sv ${tomcat9_install_dir}/$(ls $tomcat9_install_dir) ${tomcat9_install_dir}/tomcat9
else
echo "目录或链接已存在"
fi # 配置JDK8环境
cat <<EOF > /etc/profile.d/jdk8.sh
export JDK_HOME=${jdk_install_dir}/jdk8
export PATH=$JDK_HOME/bin:$PATH
EOF
source /etc/profile.d/jdk8.sh
java -version # 配置tomcat9运行环境
cat <<EOF > /etc/profile.d/tomcat9.sh
export CATALINA_HOME=${tomcat9_install_dir}/tomcat9
export PATH=$CATALINA_HOME/bin:$PATH
EOF
source /etc/profile.d/tomcat9.sh cat << EOF >${tomcat9_install_dir}/tomcat9/bin/setenv.sh
CATALINA_HOME=${tomcat9_install_dir}/tomcat9
CATALINA_BASE=${tomcat9_install_dir}/tomcat9
JAVA_HOME=${jdk_install_dir}/jdk8
JRE_HOME=${jdk_install_dir}/jdk8/jre/
EOF

centos7安装配置tomcat9的更多相关文章

  1. Centos7安装配置gitlab

    Centos7安装配置gitlab 这篇文字我会介绍在Centos7上安装gitlab,配置gitlab的smtp,并且创建项目demo. sudo yum install openssh-serve ...

  2. Centos7安装配置Apache+PHP+Mysql+phpmyadmin

    转载自: Centos7安装配置Apache+PHP+Mysql+phpmyadmin 一.安装Apache yum install httpd 安装成功后,Apache操作命令: systemctl ...

  3. Centos7安装配置JDK8

    Centos7安装配置JDK8 一.准备工作 第一步,去甲骨文官网下载Jdk相应的版本,我这里下载的是jdk1.8. 第二步将你从官网上下载下来的jdk使用FTP工具上传到云服务器上的相应目录,我的是 ...

  4. centos7命令行和图形界面的相互切换(附centos7安装配置教程)

    一.最近安装了centos7,发现在命令行和图形界面的相互切换命令上,与centos以往版本有很大不同,先整理如下,加深记忆. 1,centos7默认安装后,跟其他版本一样,启动默认进入图形界面: 2 ...

  5. (转)Centos7安装配置NFS服务和挂载

    Centos7安装配置NFS服务和挂载 原文:https://www.u22e.com/601.html NFS简介 NFS(Network File System)即网络文件系统,是FreeBSD支 ...

  6. CentOS7 安装配置笔记

    CentOS7 安装配置笔记 1.通过镜像安装 CentOS7 ==============================* 使用 UltraISO 9.7 或者 rufus-3.5p 制作ISO的 ...

  7. Centos7安装配置jenkins(Tomcat)

    Centos7安装配置jenkins(Tomcat) 一.准备工作 1.1 安装JDK1.8 具体安装过程不在赘述. 1.2 下载jenkins的war包 jenkins官网下载地址:https:// ...

  8. CentOS7 安装配置rsync

    centos7自带rsync,今天简单记录下. rsync安装配置步骤 服务器端: 1.修改默认配置文件/etc/rsyncd.conf,该成如下: # /etc/rsyncd: configurat ...

  9. centos7安装配置zabbix4.0

    zabbix01    198.8.8.211    zabbix-server4.0 zabbix02    198.8.8.212    zabbix-agent4.0 一:zabbix服务端环境 ...

随机推荐

  1. 为什么使用zookeeper?

    随着应用规模的迅速扩张,单台机器的部署已经难以支撑用户大规模.高并发的请求了, 因此服务化.集群化.分布式概念应运而生. 针对这种场景,人们通常使用的做法就是将软件按照模块进行拆分,形成独立的子系统, ...

  2. GIT和SVN版本控制

    Git 与SVN SVN 是集中式版本控制系统: 先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了, ...

  3. 【原创】ACR傻瓜式破解IC芯片卡

    1.简介: 智能卡(英语:Smart card 或IC Card),又称智慧卡.聪明卡.集成电路卡及IC卡,是指粘贴或嵌有集成电路芯片的一种便携式卡片塑料.卡片包含了微处理器.I/O接口及存储器,提供 ...

  4. python 3 字符编码解码问题

    python2与python3 字符编码都做了很大的调整,区别: 1.python2字符串默认有两种类型,unicode和str.'你好' !=u'你好' python3字符串默认只有str一种类型, ...

  5. Windows10 VS2017 C++多线程传参和等待线程结束

    #include "pch.h" #include <iostream> #include <windows.h> using namespace std; ...

  6. 在java中浅谈Math类中的常用方法

    通过最近的学习,学到了一些的Math类中的常见方法 package org.stm.demo; public class Test { public static void main(String[] ...

  7. 12_jvm性能优化专题1——top命令和jstack联合定位

    一:异常项目构建 1.通过while死循环构造异常常见: package com.huawei.jvm; import org.springframework.stereotype.Controlle ...

  8. 【图解】Hive文件存储格式

    摘自:https://blog.csdn.net/xueyao0201/article/details/79103973 引申阅读原理篇: 大数据:Hive - ORC 文件存储格式 大数据:Parq ...

  9. react native onEndReached频繁多次调用问题

    今天被这个问题搞得头疼,写一个分页加载,但是listview的onEndReached方法老是被频繁调用,知道加载完所有的分页数据才停止. <ListView automaticallyAdju ...

  10. LR-SVM(有待重新整理)

    参考:http://www.zhihu.com/question/26768865 总结: 1)在线学习:SVM不支持在线学习,LR支持 2)不平衡数据:SVM不依赖于数据的分布,所以数据是否平衡影响 ...