什么是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. Oracle数据库各种名字的区别

    数据库名(DB_NAME).数据库实例名(INSTANCE_NAME).操作系统环境变量(ORACLE_SID).数据库服务名(SERVICE_NAME).数据库域名(DB_DOMAIN)以及全局数据 ...

  2. clickhouse在Linux上的安装部署

    $ sudo apt-get install clustershell #输入你的管理员密码 $ cd /etc/clustershell $ sudo gedit groups #在文件中添加如下内 ...

  3. Java并发知识分享

    volatile的内存语义 从JSR-133(即从JDK1.5开始),volatile变量的写-读可以实现线程之间的通信 当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值刷 ...

  4. L360 Most People Spend Their Time in Just 25 Places

    Some people are always out on the town, going to concerts, restaurant openings, you name it. They're ...

  5. better-scroll

    better-scroll会将默认事件阻止掉,如果自己写的部分需要有点击事件,需要在参数里加上click:true. 同时,在PC上或某些手机端,由于未成功将touchend事件move掉,点击事件会 ...

  6. CSS内嵌样式实现打字效果

    <style> *{margin:0;padding:0;} @keyframes typing { from { width: 0; } } @keyframes blink-caret ...

  7. Holer实现外网访问ARM嵌入式Linux系统

    公网访问ARM嵌入式Linux系统 实验室里的ARM嵌入式Linux系统,只能在局域网内访问,怎样从公网也能访问内网ARM嵌入式Linux系统? 本文将介绍使用holer实现的具体步骤. 1. 准备工 ...

  8. 如何用core自动创建model,与数据库连接

    打开vs.点击视图->其他->程序包管理器控制台->选择默认项目->输入 Scaffold-DbContext “Data Source=XXX;Initial Catalog ...

  9. mysql 命令汇总

    1.连接master和slave CHANGE MASTER TO:将slave定向到master,然后用START SLAVE启动复制 change master to master_host='' ...

  10. UTC,BJT时间换算-java

    题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果小时小于10,则没有千 ...