Linux 6 下安装 tomcat 8

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。通过适当的配置,Apache 为HTML页面服务,Tomcat运行JSP 页面和Servlet,从而实现web服务器与应用服务的分离。本文主要描述了在Linux 6下安装Tomcat 8。

1、本文环境介绍:

os版本:centos6.5 64bit
jdk版本:1.7.0_80
tomcat版本:8.0.29
apache版本:2.4.9
apache服务器IP:192.168.21.10/24
所有安装文件可到apache以及oracle官网下载

2、安装java jdk

# cd /usr/local/src
# chmod u+x jdk-7u80-linux-x64.rpm 
# rpm -Uvh jdk-7u80-linux-x64.rpm

# java -version
    java version "1.7.0_80"
    Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
    Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

# vi /etc/profile.d/java.sh
    export JAVA_HOME=/usr/java/latest
    export PATH=$PATH:$JAVA_HOME/bin

# source /etc/profile.d/java.sh 
# env|grep JAVA
JAVA_HOME=/usr/java/latest

# ls -hltr /usr/java/
    total 4.0K
    drwxr-xr-x. 8 root root 4.0K Nov 30 16:56 jdk1.7.0_80
    lrwxrwxrwx. 1 root root   21 Nov 30 16:56 latest -> /usr/java/jdk1.7.0_80
    lrwxrwxrwx. 1 root root   16 Nov 30 16:56 default -> /usr/java/latest

3、安装及测试tomcat

# tar -xvf apache-tomcat-8.0.29.tar.gz -C /usr/local
# ln -sv /usr/local/apache-tomcat-8.0.29 /usr/local/tomcat 
`/usr/local/tomcat' -> `/usr/local/apache-tomcat-8.0.29'

# vi /etc/profile.d/tomcat.sh 
    export CATALINA_HOME=/usr/local/tomcat
    export PATH=$PATH:$CATALINA_HOME/bin

# source /etc/profile.d/tomcat.sh

# $CATALINA_HOME/bin/startup.sh  ###也可以使用catalina.sh脚本启动
    Using CATALINA_BASE:   /usr/local/tomcat       --Auhtor : Leshami
    Using CATALINA_HOME:   /usr/local/tomcat       --Blog   : http://blog.csdn.net/leshami
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr/java/latest
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Tomcat started.

# netstat -nltp|grep 80         ###tomcat缺省端口为8080,ajp为8089,shutdown端口为8005
    tcp        0      0 :::8080                     :::*          LISTEN      2150/java           
    tcp        0      0 ::ffff:127.0.0.1:8005       :::*          LISTEN      2150/java           
    tcp        0      0 :::8009                     :::*          LISTEN      2150/java  

# catalina.sh version
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Server version: Apache Tomcat/8.0.29
    Server built:   Nov 20 2015 09:18:00 UTC
    Server number:  8.0.29.0
    OS Name:        Linux
    OS Version:     2.6.32-431.el6.x86_64
    Architecture:   amd64
    JVM Version:    1.7.0_80-b15
    JVM Vendor:     Oracle Corporation

# curl http://localhost:8080/

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8" />
            <title>Apache Tomcat/8.0.29</title>
            <link href="favicon.ico" rel="icon" type="image/x-icon" />
            <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
            <link href="tomcat.css" rel="stylesheet" type="text/css" />
        </head>
         ...........

# catalina.sh stop

4、配置tomcat为系统服务

# vi /etc/init.d/tomcat 
    #!/bin/sh
    # Tomcat init script for Linux.
    #
    # chkconfig: 2345 96 14
    # description: The Apache Tomcat servlet/JSP container.
    JAVA_HOME=/usr/java/latest
    CATALINA_HOME=/usr/local/tomcat
    export JAVA_HOME CATALINA_HOME
    exec $CATALINA_HOME/bin/catalina.sh $*

# service tomcat start
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr/java/latest
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Tomcat started.

# service tomcat stop
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr/java/latest
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

# chkconfig --add tomcat
# chkconfig tomcat on

5、tomcat相关配置文件

server.xml:
    核心配置文件
context.xml:
    每个webapp都有其配置文件,这些配置文件通常位于webapp应用程序目录下的WEB-INF目录中,
    用于定义会话管理器、JDBC;此配置文件用于为所有的webapp提供默认配置;
web.xml:
    每个webapp部署之后才能被访问; 此文件则用于为所有webapp提供默认部署方式的配置;
tomcat-users.xml:
    用户认证账号配置文件;
catalina.policy:
    当使用-security启动tomcat实例时会读取此配置文件来其安全运行策略;
catalina.properties:
    Java属性的定义文件,用于设定类加载器路径,以及一些JVM性能调整的相关参数;
logging.properties:
    日志相关的配置信息;

6、tomcat架构图

tomcat组件由java类实现;有些组件的实现方式不止一种;有些组件还要嵌套别的组件;
    每个组件在通过指定的类型实现时需要传递一些属性;

    顶级类组件:server(代表一个tomcat实例);位于配置层次的顶级,并且彼此间有着严格的对应关系;
    服务类组件:service (将连接器关联至内部的engine)
    容器类组件:engine (代表一个web container),host,context
    连接器组件:connector http, https, ajp(apache jserv procotol)连接客户端(可以是浏览器或Web服务器)请求至Servlet容器
    被嵌套类组件:valve, logger, realm, ...位于一个容器当中,但不能包含其它组件;
    主配置文件按以下结构组成:
    <Server>
        <Service>
            <Connector />
            ...
            <Engine> 
                <Host>
                    <Context> </Context>
                    ...
                </Host>
                ...
            </Engine>
        </Service>
        ...         
    </server>

    context定义示例:
      <Host name="www.ycdata.net"  appBase="/website"
           unpackWARs="true" autoDeploy="true">
         <Context path="" docBase="webapps" reloadable="true" /> 
      </Host> 

7、各常见组件描述:

服务器(server):
    Tomcat的一个实例,这是一个顶级组件,通常一个JVM只能包含一个Tomcat实例;
    一台物理服务器上可以在启动多个JVM的情况下在每一个JVM中启动一个Tomcat实例,每个实例分属于一个独立的管理端口。

服务(service):
    一个服务组件通常包含一个引擎和与此引擎相关联的一个或多个连接器;
    给服务命名可以方便管理员在日志文件中识别不同服务产生的日志;
    一个server可以包含多个service组件,但通常情下只为一个service指派一个server。

连接器(connectors):
    连接器类组件,负责连接客户端(可以是浏览器或Web服务器)请求至Servlet容器内的Web应用程序;
    通常指的是接收客户发来请求的位置及服务器端分配的端口;
    默认端口通常是HTTP协议的8080,管理员也可以根据自己的需要改变此端口;
    一个引擎可以配置多个连接器,但这些连接器必须使用不同的端口。默认的连接器是基于HTTP/1.1的Coyote。
    同时,Tomcat也支持AJP、JServ和JK2连接器。

引擎(Engine):
    容器类组件,引擎通是指处理请求的Servlet引擎组件,即Catalina Servlet引擎; 它检查每一个请求的HTTP首部信息以辨别此请求应该发往哪个host或context,并将请求处理后的结果返回的相应的客户端。
    严格意义上来说,容器不必非得通过引擎来实现,它也可以是只是一个容器。
    如果Tomcat被配置成为独立服务器,默认引擎就是已经定义好的引擎。
    而如果Tomcat被配置为Apache Web服务器的提供Servlet功能的后端,默认引擎将被忽略,因为Web服务器自身就能确定将用户请求发往何处。
    一个引擎可以包含多个host组件。

主机(Host):
    主机组件类似于Apache中的虚拟主机,但在Tomcat中只支持基于FQDN的“虚拟主机”。一个引擎至少要包含一个主机组件。

上下文(Context):
    Context组件是最内层次的组件,它表示Web应用程序本身。
    配置一个Context最主要的是指定Web应用程序的根目录,以便Servlet容器能够将用户请求发往正确的位置。
    Context组件也可包含自定义的错误页,以实现在用户访问发生错误时提供友好的提示信息。

被嵌套类(nested)组件:
    这类组件通常包含于容器类组件中以提供具有管理功能的服务,它们不能包含其它组件,但有些却可以由不同层次的容器各自配置。

阀门(Valve):
    用来拦截请求并在将其转至目标之前进行某种处理操作,类似于Servlet规范中定义的过滤器。
    Valve可以定义在任何容器类的组件中。Valve常被用来记录客户端请求、客户端IP地址和服务器等信息,
    这种处理技术通常被称作请求转储(requestdumping)。
    请求转储valve记录请求客户端请求数据包中的HTTP首部信息和cookie信息文件中,
    响应转储valve则记录响应数据包首部信息和cookie信息至文件中。

日志记录器(Logger):
    用于记录组件内部的状态信息,可被用于除Context之外的任何容器中。
    日志记录的功能可被继承,因此,一个引擎级别的Logger将会记录引擎内部所有组件相关的信息,除非某内部组件定义了自己的Logger组件。

领域(Realm):
    用于用户的认证和授权;在配置一个应用程序时,管理员可以为每个资源或资源组定义角色及权限,而这些访问控制功能的生效需要通过Realm来实现。
    Realm的认证可以基于文本文件、数据库表、LDAP服务等来实现。
    Realm的效用会遍及整个引擎或顶级容器,因此,一个容器内的所有应用程序将共享用户资源。
    同时,Realm可以被其所在组件的子组件继承,也可以被子组件中定义的Realm所覆盖。

8、Tomcat目录结构

* bin  - Only the following files:

     * setenv.sh (*nix) or setenv.bat (Windows),
     * tomcat-juli.jar

    The setenv scripts were described above. The tomcat-juli library
    is documented in the Logging chapter in the User Guide.

 * conf - Server configuration files (including server.xml)
 * lib  - Libraries and classes, as explained below
 * logs - Log and output files
 * webapps - Automatically loaded web applications
 * work - Temporary working directories for web applications
 * temp - Directory used by the JVM for temporary files (java.io.tmpdir)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java后端技术栈

一文带你详解了解Tomcat的Server配置!

Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛。server.xml是Tomcat中最重要的配置文件,server.xml的...

1142
来自专栏惨绿少年

企业级Tomcat部署实践及安全调优

1.1 Tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由...

3150
来自专栏C/C++基础

解决tomcat启动startup.bat一闪而…

遇到很多次运行startup.bat后,一个窗口一闪而过的问题,但是从来没去纠正怎样修改配置才是正确的,现在从网上查阅的资料整理如下:

972
来自专栏Java帮帮-微信公众号-技术文章全总结

Tomcat7优化

用了很久的Tomcat,没怎么看过它的优化,今天抽出时间研究了下,将内容记录下。 首先,是客户端访问tomcat的一个过程,如图所示: ? 图中间虚线框部分是...

48810
来自专栏meteorzx

express模拟接口

Failed to load http://192.168.xxx.xxx:9092/api/user/query?id=user123&name=%E6%B5...

4906
来自专栏Java学习123

tomcat 性能调优

3279
来自专栏互扯程序

分布式跟踪工具-pinpoint安装部署

博主无意间接触到了这款工具!而且使用的时候觉得特别爽!比其他的检测工具强的不是一丁半点(个人认为)! 所以在这里分享给大家使用!

2141
来自专栏运维小白

16.5/16.6/16.7 配置Tomcat虚拟主机

16.5/16.6/16.7 配置Tomcat虚拟主机目录概要 vim /usr/local/tomcat/conf/server.xml 其中<Host>和<...

2648
来自专栏惨绿少年

KICKSTART无人值守安装

1.1 环境说明 [root@test ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [roo...

2880
来自专栏蓝天

ZooKeeper-3.4.6分布式安装指南

介绍ZooKeeper-3.4.6版本的分布式安装,力求细致,提供精确的安装指导。本文的安装环境是64位的SuSE 10.1 Linux,也适用于ZooKe...

1521

扫码关注云+社区

领取腾讯云代金券