美文网首页
Tomcat的基本配置与使用

Tomcat的基本配置与使用

作者: guo的学习笔记 | 来源:发表于2017-09-04 18:36 被阅读0次
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat开放源代码,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

实验Linux平台:本次实验使用红帽系的CentOS 7.3

安装tomcat需要先安装Java,下面安装Java编译环境JDK。

JDK有两个版本,一个是Oracle的,另外一个是OpenJDK开源社区版的。这两个版本安装那个都行,在红帽系列的Linux系统Base仓库中集成了OpenJDK的rpm包。我在下面的实验中就使用Base仓库自带的OpenJDK进行安装。
OracleJDK官网:http://www.oracle.com/technetwork/java/index.html
OpenJDK官网 :http://openjdk.java.net/

OpenJDK:

java-VERSION-openjdk :主程序包
java-VERSION-openjdk-headless:运行环境。
java-VERSION-openjdk-devel:开发包

安装相应版本的rpm包,在CentOS 7.3的Base库中有三个版本,1.8、1.7、1.6。

[root@centos7.3 ~]#yum list all java*    #这条命令可以查看所有的yum仓库中的Java包
[root@CentOS7.3 ~]#yum -y install java-1.8.0-openjdk-devel   #安装这个开发包会把主程序包作为依赖包一并安装

注意:如果是去官网下载的包在安装完成后,要配置JAVA_HOME环境变量,指向java的安装路径;

OpenJDK:
        JAVA_HOME=/usr
Oracle JDK:
        JAVA_HOME=/usr/java/jdk_VERSION

注意:多版本并存时,可使用 alternatives命令设定默认使用的版本;
查看当前的java版本:

java  -version

安装Tomcat

tomcat官网提供rpm包和二进制格式的,二进制格式的直接解压到指定路径就可以是使用。
官网:http://tomcat.apache.org/index.html

使用Base仓库

[root@CentOS7.3 ~]# yum -y install tomcat tomcat-lib tomcat-admin-webapps tomcat-webapps tomcat-docs-webapp

二进制

[root@CentOS7.3 ~]# tar xf apache-tomcat-VERSION.tar.gz  -C /usr/local/
[root@CentOS7.3 ~]# cd /usr/local
[root@CentOS7.3 ~]# ln -sv apache-tomcat-VERSION  tomcat

二进制安装后需要指定一下程序路径

vim  /etc/profile.d/tomcat.sh 
export PATH=$PATH:/usr/local/tomcat/bin

tomcat程序环境:

tomcat的目录结构
        bin :脚本,及启动时用到的类;
        conf:配置文件目录;
        lib :库文件,Java类库,jar;
        logs:日志文件目录;
        temp:临时文件目录;
        webapps:webapp的默认目录;
        work:工作目录,主要存放编译后的字节码文件;

使用二进制方式安装,使用catalina.sh 脚本对tomcat服务进行管理

catalina.sh 
        debug             Start Catalina in a debugger
        debug -security   Debug Catalina with a security manager
        jpda start        Start Catalina under JPDA debugger
        run               Start Catalina in the current window
        run -security     Start in the current window with security manager  前台启动
        start             Start Catalina in a separate window
        start  -security  Start in a separate window with security manager
        stop              Stop Catalina, waiting up to 5 seconds for the process to end
        stop n            Stop Catalina, waiting up to n seconds for the process to end
        stop -force       Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running
        stop n -force     Stop Catalina, wait up to n seconds and then use kill -KILL if still running
        configtest        Run a basic syntax check on server.xml - check exit code for result
        version           What version of tomcat are you running

注:使用 -security 表示调用conf路径下的catalina.policy安全策略文件。
rpm包安装的程序环境:

### 配置文件目录:/etc/tomcat
主配置文件:server.xml 
webapps存放位置:/var/lib/tomcat/webapps/
Unit File:tomcat.service
环境配置文件:/etc/sysconfig/tomcat

tomcat的配置目录下的文件

server.xml          :主配置文件;
web.xml             :每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置;如果程序的WEB_INF目录中没有定义wem.xml就会继承这个文件的配置。
context.xml         :每个webapp都可以使用的配置文件,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中 ;此文件为所有的webapps提供默认配置;主要用来定义部署webapp时的背景信息。如果程序的WEB_INF目录中没有定义wem.xml就会继承这个文件的配置。
tomcat-users.xml    :用户认证的账号和密码文件;权限配置通过角色(role)实现,将用户添加在角色上就会获取这个角色的权限,此文件在tomcat启动时被装入内存,如果修改必须重启才能生效。
catalina.policy     :当使用-security选项启动tomcat时,用于为tomcat设置安全策略; 
catalina.properties :Java属性的定义文件,用于设定类加载器路径,以及一些与JVM调优相关参数;
logging.properties  :日志系统相关的配置;
log4j               :java自带的日志管理系统 

server.xml(主配置文件)

<Server> 服务
      <Listener >   侦听器
      <GlobalNameingResouces> 全局配置
    <Service>容器
        <connector/>  连接器
        <connector/>
            ...
        <Engine>  引擎
            <Host>  主机
                        <Context/> 
                        <Context/>
                    ...
                <Valve> 过滤器
            </Host>
            <Host>
                ...
            </Host>
            ...
        </Engine>
    </Service>
</Server>
顶级组件  :Server
服务类组件:Service
连接器组件:http, https, ajp(apache jserv protocol)
容器类    :Engine, Host, Context,可以在里面部署应用程序
被嵌套类  :valve, logger, realm, loader, manager, ...
集群类组件:listener, cluster, ...

一个server中可以有多个连接器(HTTP、HTTPS、AJP),在server有多个引擎,一个连接器只能连接到一个引擎,但是一个引擎却可以接受多个连接器的请求,在server和引擎中间有一层service(服务),作用是把连接器和引擎连接对应。

在引擎中有多个host的,host是处理请求提供服务,在一个host中可以部署多个程序,通过context实现。

部署(deploy)webapp的相关操作:

deploy:将webapp的源文件放置于目标目录(网页程序文件存放目录),配置tomcat服务器能够基于web.xml和context.xml文件中定义的路径来访问此webapp;将其特有的类和依赖的类通过class loader装载至JVM;

部署有两种方式:在server.xml中定义

  1. 自动部署:auto deploy

  2. 手动部署:手动部署分为冷部署和热部署
    a. 冷部署:把webapp复制到指定的位置,而后才启动tomcat;
    b. 热部署:在不停止tomcat的前提下进行部署;

      热部署工具:manager、ant脚本、tcd(tomcat client deployer)等
    

部署一台host主机

vim /etc/tomcat/server.xml

Engine

host在engine中定义


Host

<Host></Host>:主机配置需要写在Host标签内
name:主机名
appBase:此Host的webapps的默认存放目录,指存放非归档的web应用程序的目录或归档的WAR文件目录路径;可以使用基于$CATALINA_BASE变量所定义的路径的相对路径;
unpackWARs:是否自动展开host根目录下的war格式的归档文件。
autoDeploy:在Tomcat处于运行状态时,将某webapp放置于appBase所定义的目录中时,是否自动将其部署至tomcat;
webapp归档格式:Java打包格式

war:webapp的归档文件;这个文件放在站点目录下自动展开。
.jar:EJB的类打包文件(类库);
.rar:资源适配器类打包文件;
.ear:企业级webapp; 

JSP WebAPP的组织结构:

/: webapps的根目录
index.jsp:主页文件; ...还有很多的其他.jsp文件。
WEB-INF/ :当前webapp的私有资源路径,通常用于存储当前webapp的web.xml和context.xml配置文件;不能被用户访问,被tomcat禁止通过web访问。
META-INF/:类似于WEB-INF/;
classes/ :类文件,当前webapp所提供的类;
lib/     :类文件,当前webapp所提供的类,被打包为jar格式;

手动提供一测试类应用,并冷部署:

[root@CentOS7.3 ~]#mkdir  -p  /app/web/ROOT/{classes,lib,WEB-INF}
[root@CentOS7.3 ~]#cd /app/web/ROOT/        #主机的默认应用的配置文件需要放在ROOT目录下
[root@CentOS7.3 ROOT]#vim index.jsp      #编辑一个测试页  
<%@ page language="java" %>
<%@ page import="java.util.*" %>    #导入类库
<html>
    <head>
        <title>Test Page</title>
    </head>
    <body>
        <% out.println("hello world");
        %>
    </body>
</html> 

tomcat的网页文件格式是.jsp结尾的

JSP: Java Server Page  
            类库:
            <html>
                <title>TITLE</title>
                <body>
                    <h1>...</h1>
                    <%
                        ... java code...
                    %>
                </body>
            </html>

执行过程:.jsp -->jasper--> .java --> javac --> .class --> jvm
注:编译过程中产生的java文件和class文件保存在toncat/work/Catalina/主机名/应用名/org/apache/jsp目录下
注意:基于jasper将静态输出的数据转为java代码进行输出,结果为servlet规范的代码;


将默认的主机改为test.com

测试

[root@CentOS7.3 ROOT]#systemctl start tomcat        #启动tomcat
[root@CentOS7.3 ROOT]#ss -ntl        #查看监听端口
State       Recv-Q Send-Q      Local Address:Port                     Peer Address:Port                 
LISTEN      0      128                     *:22                                  *:*                          
LISTEN      0      100                    :::8080                               :::*       #tomcat的http连接器默认使用8080端口
LISTEN      0      128                    :::22                                 :::*                  
LISTEN      0      1        ::ffff:127.0.0.1:8005                               :::*   #tomcat的管理端口,默认使用127.0.0.1的8005端口
LISTEN      0      100                    :::8009                               :::*     #tomcat的jap连接器,默认使用的8009端口
访问测试页面

热部署主机和应用

将默认主机修改回localhost

host manager


点击取消会进入如下页面

编辑用户配置文件/etc/tomcat/tomcat-users.xml
添加如下内容。需要定义在<tomcat-users></tomcat-users>标签内,

<role rolename="admin-gui"/>   #定义用户角色
<user username="tomcat" password="s3cret" roles="admin-gui"/>    配置用户和密码

默认定义的用户角色
admin-gui 允许通过web访问host manager
admin-script 允许访问文本(命令行)接口
重启tomcat,刷新页面,输入用户名密码

image.png

配置manager

添加manager用户,在tomcat-users.xml文件中

<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>
manager用户角色:
    manager-gui    允许用户访问基于图形界面的manager和status
    manager-script 允许用户通过命令行接口访问manager和status
    manager-jmx    允许用户通过jmx(java管理扩展)代理访问status页面,jmx可以用来接口tomcat的信息
    manager-status 允许用户查看图形和命令行接口下status信息

也可以再给原来的用户添加一个角色,如下图。

重启tomcat进入manager管理页面


在这个页面中,可以对默认主机的应用进行管理

undeploy:反部署、拆除,停止webapp,并从tomcat实例上卸载webapp;通过manager管理 
start   :启动处于停止状态的webapp;
stop    :停止webapp,不再向用户提供服务;其类依然在jvm上;
redeploy:重新部署;
expire sessions:设置会话的过期时间

添加应用


相关文章

  • Tomcat的基本配置与使用

    Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项...

  • 47 笔记

    今日内容 1.JVM基本介绍 2.Tomcat与Nginx区别 3.Tomcat安装配置启动 4Tomcat 配置...

  • tomcat 线程池调优

    基本常见的几种调优方式:线程,内存,使用Apache+JK+Tomcat配置(负载均衡)等第一:不使用tomcat...

  • LNMT

    1.JVM基本介绍 2.Tomcat与Nginx区别 3.Tomcat安装配置启动 无法启动:1.替换配置文件: ...

  • 2018-10-23

    基本步骤: 1.使用 java 创建一个 keystore 文件2.配置 Tomcat 以使用该 keystore...

  • Linux centos7 tomcat安装

    本教程介绍在CentOS 7服务器上使用yum进行Tomcat 7的基本安装和一些配置。 1.安装Tomcat s...

  • JAVA_OPTS 与 CATALINA_OPTS

    JAVA_OPTS 与 CATALINA_OPTS 配置只是该Tomcat使用的环境变量,使用CATALINA_O...

  • idea配置SSM

    SSM基本流程 tomcat配置 mysql配置 maven配置 intellij idea配置 一. 新建工程 ...

  • Tomcat 配置JDK不使用环境变量

    Tomcat 配置JDK不使用环境变量 场景:系统中有不用版本的JDK,tomcat不能使用环境变量配置的JAVA...

  • Tomcat 配置

    Tomcat 配置 基本流程 下载 http://tomcat.apache.org/ 步骤 安装java/jre...

网友评论

      本文标题:Tomcat的基本配置与使用

      本文链接:https://www.haomeiwen.com/subject/icojjxtx.html