Tomcat的基本配置与使用

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。

[[email protected] ~]#yum list all java*    #这条命令可以查看所有的yum仓库中的Java包
[[email protected] ~]#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仓库

[[email protected] ~]# yum -y install tomcat tomcat-lib tomcat-admin-webapps tomcat-webapps tomcat-docs-webapp

二进制

[[email protected] ~]# tar xf apache-tomcat-VERSION.tar.gz  -C /usr/local/
[[email protected] ~]# cd /usr/local
[[email protected] ~]# 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
服务类组件: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

Tomcat的基本配置与使用_第1张图片
Engine

host在engine中定义


Tomcat的基本配置与使用_第2张图片
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格式;

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

[[email protected] ~]#mkdir  -p  /app/web/ROOT/{classes,lib,WEB-INF}
[[email protected] ~]#cd /app/web/ROOT/        #主机的默认应用的配置文件需要放在ROOT目录下
[[email protected] ROOT]#vim index.jsp      #编辑一个测试页  
<%@ page language="java" %>
<%@ page import="java.util.*" %>    #导入类库

    
        Test Page
    
    
        <% out.println("hello world");
        %>
    
 

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

JSP: Java Server Page  
            类库:
            
                TITLE
                
                    

...

<% ... java code... %>

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


将默认的主机改为test.com

测试

[[email protected] ROOT]#systemctl start tomcat        #启动tomcat
[[email protected] 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端口
Tomcat的基本配置与使用_第3张图片
访问测试页面

热部署主机和应用

将默认主机修改回localhost

Tomcat的基本配置与使用_第4张图片

host manager

Tomcat的基本配置与使用_第5张图片

点击取消会进入如下页面

Tomcat的基本配置与使用_第6张图片

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

   #定义用户角色
    配置用户和密码

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

Tomcat的基本配置与使用_第7张图片
Tomcat的基本配置与使用_第8张图片
Tomcat的基本配置与使用_第9张图片
Tomcat的基本配置与使用_第10张图片
image.png

配置manager

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



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

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

重启tomcat进入manager管理页面

Tomcat的基本配置与使用_第11张图片

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

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

添加应用


Tomcat的基本配置与使用_第12张图片
Tomcat的基本配置与使用_第13张图片

你可能感兴趣的:(Tomcat的基本配置与使用)