首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 6 下安装 tomcat 8

Linux 6 下安装 tomcat 8

作者头像
Leshami
发布2018-08-13 12:01:37
1K0
发布2018-08-13 12:01:37
举报
文章被收录于专栏:乐沙弥的世界乐沙弥的世界

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)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年12月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、本文环境介绍:
  • 2、安装java jdk
  • 3、安装及测试tomcat
  • 4、配置tomcat为系统服务
  • 5、tomcat相关配置文件
  • 6、tomcat架构图
  • 7、各常见组件描述:
  • 8、Tomcat目录结构
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档