darkpoon 发表于 2018-12-2 08:26:17

Tomcat的安装、部署和常用组件

Tomcat的安装、部署和常用组件

  ===============================================================================
  概述:
      本章将主要介绍Tomcat的安装部署和常用组件,具体内容如下:

[*]  Tomcat的安装及程序环境
      ·二进制程序包(binary)安装启动及程序环境
      ·rpm包的安装启动及程序环境
      ·Tomcat的配置文件
      ·JSP WebAPP的组织结构:
      ·webapp归档格式:

[*]  部署(deploy)webapp的相关操作:
[*]  tomcat自带的两个管理应用程序;
      ·manager app
      ·host manager

[*]  Tomcat常用组件的配置

  ===============================================================================
  
Tomcat的安装及程序环境
   1.安装Tomcat
★Tomcat binary release:

[*]# tar xf apache-tomcat-VERSION.tar.gz-C /usr/local/
[*]# cd /usr/local
[*]# ln -sv apache-tomcat-VERSIONtomcat
★Base Repo:

[*]tomcat, tomcat-lib, tomcat-admin-webapps, tomcat-webapps, tomcat-docs-webapp

2.Tomcat程序环境

★二进制归档展开安装的程序环境
☉tomcat的目录结构

[*]bin:脚本,及启动时用到的类;
[*]conf:配置文件;
[*]lib:库文件,Java类库,jar;
[*]logs:日志文件目录;
[*]temp:临时文件目录;
[*]webapps:webapp的默认目录;
[*]work:工作目录;
☉catalina.sh 启动时的脚本会调用参数(start、stop、version,configtest)
http://s2.运维网.com/wyfs02/M02/8B/A8/wKiom1hT1ZaQNg1XAABhjODSW6A005.png
★rpm包安装的程序环境:
☉配置文件:

[*]/etc/tomcat
☉webapps存放位置:/var/lib/tomcat/webapps/

[*]examples
[*]manager
[*]host-manager
[*]docs

★Tomcat的配置文件
☉server.xml:

[*]主配置文件;
☉web.xml:

[*]每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件(主目录下的)为所有的webapps提供默认配置;

☉context.xml:

[*]每个web都可以专用的配置文件,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置;

☉tomcat-users.xml

[*]用户认证的账号和密码文件;

☉catalina.policy

[*]当使用-security选项启动tomcat时,用于为tomcat设置安全策略;

☉catalina.properties:

[*]Java属性的定义文件,用于设定类加载器路径,以及一些与JVM调优相关参数;

☉logging.properties:

[*]日志系统相关的配置;


3.JSP WebAPP的组织结构:

★/: webapps的根目录
☉index.jsp:主页;
☉WEB-INF/:

[*]当前webapp的私有资源路径;通常用于存储当前webapp的web.xml和context.xml配置文件;不能通过网页进行访问
☉META-INF/:

[*]类似于WEB-INF/;
☉classes/:

[*]类文件,当前webapp所提供的类;
☉lib/:

[*]类文件,当前webapp所提供的类,被打包为jar格式;
4.webapp归档格式:



[*].war:webapp(多数情况下的归档文件)
[*].jar:EJB的类打包文件;
[*].rar:资源适配器类打包文件;
[*].ear:企业级webapp;
二进制程序包(binary)安装启动演示:

1.在官方下载tomcat的二进制程序包,并解压到/usr/local目录下,创建软连接
# ls
apache-tomcat-8.0.23.tar.gz # 下载的二进制程序包
# tar xf apache-tomcat-8.0.23.tar.gz -C /usr/local #解压到/usr/local目录中
# cd /usr/local
# ll
total 0
drwxr-xr-x   9 root root 149 Dec 16 15:53 apache-tomcat-8.0.23
drwxr-xr-x.2 root root   6 Aug 122015 bin
drwxr-xr-x.2 root root   6 Aug 122015 etc
drwxr-xr-x.2 root root   6 Aug 122015 games
drwxr-xr-x14 root root 151 Aug 24 22:19 http2
drwxr-xr-x.2 root root   6 Aug 122015 include
drwxr-xr-x.2 root root   6 Aug 122015 lib
drwxr-xr-x.2 root root   6 Aug 122015 lib64
drwxr-xr-x.2 root root   6 Aug 122015 libexec
drwxr-xr-x.2 root root   6 Aug 122015 sbin
drwxr-xr-x.5 root root46 Jul 25 23:57 share
drwxr-xr-x.2 root root   6 Aug 122015 src
# ln -sv apache-tomcat-8.0.23 tomcat # 创建软连接
‘tomcat’ -> ‘apache-tomcat-8.0.23’
# ll
total 0
drwxr-xr-x   2 root root   6 Dec 16 15:54 apache-tomcat-8.0.23
drwxr-xr-x.2 root root   6 Aug 122015 bin
drwxr-xr-x.2 root root   6 Aug 122015 etc
drwxr-xr-x.2 root root   6 Aug 122015 games
drwxr-xr-x14 root root 151 Aug 24 22:19 http2
drwxr-xr-x.2 root root   6 Aug 122015 include
drwxr-xr-x.2 root root   6 Aug 122015 lib
drwxr-xr-x.2 root root   6 Aug 122015 lib64
drwxr-xr-x.2 root root   6 Aug 122015 libexec
drwxr-xr-x.2 root root   6 Aug 122015 sbin
drwxr-xr-x.5 root root46 Jul 25 23:57 share
drwxr-xr-x.2 root root   6 Aug 122015 src
lrwxrwxrwx   1 root root20 Dec 16 15:54 tomcat -> apache-tomcat-8.0.23 2.查看Tomcat程序环境的组成结构
# cd tomcat/
# ll
total 96
drwxr-xr-x 2 root root4096 Dec 16 16:01 bin   # 二进制程序,因为是java程序,所以主要为脚本
drwxr-xr-x 2 root root4096 May 192015 conf# 配置文件目录
drwxr-xr-x 2 root root4096 Dec 16 16:01 lib   # 库文件,打包为.jar文件
-rw-r--r-- 1 root root 56977 May 192015 LICENSE
drwxr-xr-x 2 root root   6 May 192015 logs# 日志文件
-rw-r--r-- 1 root root1397 May 192015 NOTICE
-rw-r--r-- 1 root root6741 May 192015 RELEASE-NOTES
-rw-r--r-- 1 root root 16204 May 192015 RUNNING.txt
drwxr-xr-x 2 root root    29 Dec 16 16:01 temp      # 临时文件
drwxr-xr-x 7 root root    76 May 192015 webapps# 应用程序的根目录
drwxr-xr-x 2 root root   6 May 192015 work   # 工作目录。
# ls bin/
bootstrap.jarcatalina-tasks.xml            configtest.batdigest.bat      setclasspath.shstartup.bat      tomcat-native.tar.gzversion.bat
catalina.bat   commons-daemon.jar            configtest.sh   digest.sh         shutdown.bat   startup.sh       tool-wrapper.bat      version.sh
catalina.sh    commons-daemon-native.tar.gzdaemon.sh       setclasspath.batshutdown.sh      tomcat-juli.jartool-wrapper.sh
# ls conf/
catalina.policycatalina.propertiescontext.xmllogging.propertiesserver.xmltomcat-users.xmltomcat-users.xsdweb.xml
# ls lib/
annotations-api.jarcatalina.jar            ecj-4.4.2.jarjasper.jar       tomcat-api.jar   tomcat-i18n-es.jartomcat-jdbc.jartomcat-util-scan.jar
catalina-ant.jar   catalina-storeconfig.jarel-api.jar   jsp-api.jar      tomcat-coyote.jartomcat-i18n-fr.jartomcat-jni.jar   tomcat-websocket.jar
catalina-ha.jar      catalina-tribes.jar       jasper-el.jarservlet-api.jartomcat-dbcp.jar    tomcat-i18n-ja.jartomcat-util.jarwebsocket-api.jar
# ls webapps/
docsexampleshost-managermanagerROOT
# ls work/ # 每一个jsp程序在运行前要先转化为servlet代码,然后编译。整个中间过程的存放位置 3.使用catalina.sh脚本调用version参数查看版本
# bin/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/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.23
Server built:   May 19 2015 14:58:38 UTC
Server number:8.0.23.0
OS Name:      Linux
OS Version:   3.18.41-1.0-Taolinux
Architecture:   amd64
JVM Version:    1.8.0_25-b17
JVM Vendor:   Oracle Corporation 4.tomcat的启用最好用普通用户,所以创建tomcat用户,并修改目录的属主和属组,启动服务,如下:
# useradd -r tomcat
# chown -R tomcat.tomcat /usr/local/tomcat/*
# ll
total 96
drwxr-xr-x 2 tomcat tomcat4096 Dec 16 16:01 bin
drwxr-xr-x 2 tomcat tomcat4096 May 192015 conf
drwxr-xr-x 2 tomcat tomcat4096 Dec 16 16:01 lib
-rw-r--r-- 1 tomcat tomcat 56977 May 192015 LICENSE
drwxr-xr-x 2 tomcat tomcat   6 May 192015 logs
-rw-r--r-- 1 tomcat tomcat1397 May 192015 NOTICE
-rw-r--r-- 1 tomcat tomcat6741 May 192015 RELEASE-NOTES
-rw-r--r-- 1 tomcat tomcat 16204 May 192015 RUNNING.txt
drwxr-xr-x 2 tomcat tomcat    29 Dec 16 16:01 temp
drwxr-xr-x 7 tomcat tomcat    76 May 192015 webapps
drwxr-xr-x 2 tomcat tomcat   6 May 192015 work
# 使用tomcat用户启动服务
# su - tomcat -c '/usr/local/tomcat/bin/catalina.sh start'
su: warning: cannot change directory to /home/tomcat: No such file or directory
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. # 提示启动成功
# 查看端口8080,8009
# ss -tnl
State      Recv-Q Send-Q   Local Address:Port                  Peer Address:Port            
LISTEN   0      25                     *:514                              *:*                  
LISTEN   0      128                  *:22                                 *:*                  
LISTEN   0      128            127.0.0.1:631                              *:*                  
LISTEN   0      100            127.0.0.1:25                                 *:*                  
LISTEN   0      128            127.0.0.1:6010                               *:*                  
LISTEN   0      128            127.0.0.1:6011                               *:*                  
LISTEN   0      25                  :::514                               :::*                  
LISTEN   0      100                   :::8009                              :::*                  
LISTEN   0      100                   :::8080                              :::*                  
LISTEN   0      128                   :::22                              :::*                  
LISTEN   0      128                  ::1:631                               :::*                  
LISTEN   0      100                  ::1:25                              :::*                  
LISTEN   0      128                  ::1:6010                              :::*                  
LISTEN   0      128                  ::1:6011                              :::* 5.浏览器访问如下:
http://s1.运维网.com/wyfs02/M00/8B/A8/wKiom1hT2RDDFNwQAALenurnkyM225.png


6.编辑/etc/profile.d/配置文件,输出CATALINA_BASE环境变量
# vim /etc/profile.d/tomcat.sh # 添加环境变量
export CATALINA_BASE=/usr/local/tomcat
export PATH=$CATALINA_BASE/bin:$PATH
# . /etc/profile.d/tomcat.sh# 重读配置文件生效
# 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/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.23
Server built:   May 19 2015 14:58:38 UTC
Server number:8.0.23.0
OS Name:      Linux
OS Version:   3.18.41-1.0-Taolinux
Architecture:   amd64
JVM Version:    1.8.0_25-b17
JVM Vendor:   Oracle Corporation--------------------------------------------------------------------------------
Base Repo安装启动演示:
1.安装程序包
# yum list all tomcat* # 查看tomcat相关程序包如下:
Available Packages
tomcat.noarch                              7.0.54-2.el7_1                CDROM
tomcat-admin-webapps.noarch                  7.0.54-2.el7_1                CDROM
tomcat-docs-webapp.noarch                  7.0.54-2.el7_1                CDROM
tomcat-el-2.2-api.noarch                     7.0.54-2.el7_1                CDROM
tomcat-javadoc.noarch                        7.0.54-2.el7_1                CDROM
tomcat-jsp-2.2-api.noarch                  7.0.54-2.el7_1                CDROM
tomcat-jsvc.noarch                           7.0.54-2.el7_1                CDROM
tomcat-lib.noarch                            7.0.54-2.el7_1                CDROM
tomcat-native.x86_64                         1.1.34-1.el7                  epel
tomcat-servlet-3.0-api.noarch                7.0.54-2.el7_1                CDROM
tomcat-webapps.noarch                        7.0.54-2.el7_1                CDROM
tomcatjss.noarch                           7.1.2-1.el7                   CDROM
# 安装程序包,这里会自动解决依赖关系
# yum install -y tomcat tomcat-lib tomcat-admin-webapps tomcat-webapps tomcat-docs-webapp2.查看程序环境
# rpm -ql tomcat
/etc/logrotate.d/tomcat
/etc/sysconfig/tomcat
/etc/tomcat # 配置文件目录
/etc/tomcat/Catalina
/etc/tomcat/Catalina/localhost
/etc/tomcat/catalina.policy
/etc/tomcat/catalina.properties
/etc/tomcat/context.xml
/etc/tomcat/log4j.properties
/etc/tomcat/logging.properties
/etc/tomcat/server.xml
/etc/tomcat/tomcat-users.xml
/etc/tomcat/tomcat.conf
/etc/tomcat/web.xml
/usr/bin/tomcat-digest
/usr/bin/tomcat-tool-wrapper
/usr/lib/systemd/system/tomcat.service# Until File文件
/usr/lib/systemd/system/tomcat@.service
/usr/lib/tmpfiles.d/tomcat.conf
/usr/libexec/tomcat
/usr/libexec/tomcat/functions
/usr/libexec/tomcat/preamble
/usr/libexec/tomcat/server
/usr/sbin/tomcat          # 程序文件
/usr/share/doc/tomcat-7.0.54
/usr/share/doc/tomcat-7.0.54/LICENSE
/usr/share/doc/tomcat-7.0.54/NOTICE
/usr/share/doc/tomcat-7.0.54/RELEASE-NOTES
/usr/share/tomcat
/usr/share/tomcat/bin/bootstrap.jar
/usr/share/tomcat/bin/catalina-tasks.xml
/usr/share/tomcat/conf
/usr/share/tomcat/lib
/usr/share/tomcat/logs
/usr/share/tomcat/temp
/usr/share/tomcat/webapps
/usr/share/tomcat/work
/var/cache/tomcat
/var/cache/tomcat/temp
/var/cache/tomcat/work
/var/lib/tomcat
/var/lib/tomcat/webapps
/var/lib/tomcats
/var/log/tomcat
/var/log/tomcat/catalina.out
/var/run/tomcat.pid
# ll /etc/tomcat/# 配置文件
total 208
drwxrwxr-x 3 root   tomcat   22 Dec 16 16:27 Catalina
-rw-rw-r-- 1 tomcat tomcat12257 May 132015 catalina.policy
-rw-rw-r-- 1 tomcat tomcat   6294 May 132015 catalina.properties
-rw-rw-r-- 1 tomcat tomcat   1394 May 132015 context.xml
-rw-rw-r-- 1 tomcat tomcat    547 May 132015 log4j.properties
-rw-rw-r-- 1 tomcat tomcat   3288 May 132015 logging.properties
-rw-rw-r-- 1 tomcat tomcat   6536 May 132015 server.xml
-rw-rw-r-- 1 tomcat tomcat   1568 May 132015 tomcat.conf
-rw-rw---- 1 tomcat tomcat   1998 May 132015 tomcat-users.xml
-rw-rw-r-- 1 tomcat tomcat 163385 May 132015 web.xml
# ll /var/lib/tomcat# 查看webapps文件
total 0
drwxrwxr-x 8 root tomcat 89 Dec 16 16:27 webapps
# ll /var/lib/tomcat/webapps/
total 8
drwxr-xr-x 14 root   root   4096 Dec 16 16:27 docs
drwxr-xr-x8 tomcat tomcat120 Dec 16 16:27 examples
drwxr-xr-x5 root   tomcat   82 Dec 16 16:27 host-manager
drwxr-xr-x5 root   tomcat   97 Dec 16 16:27 manager
drwxr-xr-x3 tomcat tomcat 4096 Dec 16 16:27 ROOT
drwxr-xr-x5 tomcat tomcat   81 Dec 16 16:27 sample   3.启动tomcat并查看端口8080
# systemctl start tomcat.service# 直接启动tomcat服务
# ss -tnl# 查看监听端口8080,8009
State      Recv-Q Send-Q   Local Address:Port                  Peer Address:Port            
LISTEN   0      128                  *:22                                 *:*                  
LISTEN   0      128            127.0.0.1:631                              *:*                  
LISTEN   0      100            127.0.0.1:25                                 *:*                  
LISTEN   0      128            127.0.0.1:6010                               *:*                  
LISTEN   0      100                   :::8009                              :::*                  
LISTEN   0      100                   :::8080                              :::*                  
LISTEN   0      128                   :::22                              :::*                  
LISTEN   0      128                  ::1:631                               :::*                  
LISTEN   0      100                  ::1:25                              :::*                  
LISTEN   0      128                  ::1:6010                              :::*   4.在浏览器中访问如下:
http://s2.运维网.com/wyfs02/M02/8B/A8/wKiom1hT2eSAl758AALcSXArK5M233.png
  

  
  
Tomcat部署(deploy)
1.部署(deploy)webapp的相关操作:
★deploy:

[*]将webapp的源文件放置于目标目录(网页程序文件存放位置的目录),配置tomcat服务器能够基于web.xml和context.xml文件中定义的路径来访问此webapp;
[*]将其特有的类和依赖的类通过class loader装载至JVM;
部署有两种方式:
☉自动部署:auto deploy
☉手动部署:

[*]冷部署:停止Tomcat,把webapp复制到指定的位置,而后才启动tomcat;
[*]热部署:在不停止tomcat的前提下进行部署;
部署工具:manager、ant脚本、tcd(tomcat client deployer)等;
★undeploy:反部署,

[*]停止webapp,并从tomcat实例上卸载webapp;
★start:启动处于停止状态的webapp;
★stop:停止webapp,不再向用户提供服务;其类依然在jvm上;
★redeploy:重新部署;
  演示:手动提供一测试类应用,并冷部署:
   1.首先停止tomcat服务,实施冷部署
# su - tomcat -c '/usr/local/tomcat/bin/catalina.sh stop'
su: warning: cannot change directory to /home/tomcat: No such file or directory
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   2.在webapps的源文件中创建存放网页程序文件的目录test(创建webapp特有的目录结构),并提供jsp格式的测试页面文件,如下:
# mkdir -pv /usr/local/tomcat/webapps/test/{classes,lib,WEB-INF}
mkdir: created directory ‘/usr/local/tomcat/webapps/test’
mkdir: created directory ‘/usr/local/tomcat/webapps/test/classes’
mkdir: created directory ‘/usr/local/tomcat/webapps/test/lib’
mkdir: created directory ‘/usr/local/tomcat/webapps/test/WEB-INF’# vim /usr/local/tomcat/webapps/test/index.jsp



   
       Test Page
   
   
      
   
  3.部署完毕,重新启动tomcat服务,浏览器访问如下:
  http://s2.运维网.com/wyfs02/M02/8C/2B/wKioL1hkiX_AcsEeAABI8lJQvOM712.png
   4.查看工作过程可以通过查看work目录,如下:
# tree work/
work/
└── Catalina
    └── localhost
      ├── docs
      ├── examples
      ├── host-manager
      ├── manager
      ├── ROOT
      │   └── org
      │       └── apache
      │         └── jsp
      │               ├── index_jsp.class
      │               └── index_jsp.java
      └── test
            └── org
                └── apache
                  └── jsp
                        ├── index_jsp.class # 源程序编译后的字节码文件
                        └── index_jsp.java# 通过jasper将jsp代码翻译为servlet代码(源程序文件)
14 directories, 4 files  



2.tomcat自带的两个管理应用程序:

★manager app

[*]webapp管理工具
★host-manager

[*]Vhosts(虚拟主机)管理工具
   1.在Tomcat访问页面中,点击manager App,提示登录信息;点击取消登录后,会提示未经认证不允许登录,并提供登录方法,如下:
  
http://s1.运维网.com/wyfs02/M02/8C/31/wKioL1hk-NuigBlQAAGJF8KGtXY487.png
http://s5.运维网.com/wyfs02/M02/8C/35/wKiom1hk-NyS_4wIAAD0gVSsl24109.png
  
2.根据提示,要想使用manager app管理部署,就需要在/conf/tomcat-user.xml文件中添加一个manager-gui的角色,并创建用户和密码,且要求用户属于manager-gui的角色,如下:
# cd /usr/local/tomcat
# ls
binconflibLICENSElogsNOTICERELEASE-NOTESRUNNING.txttempwebappswork
# cd conf
# ls
Catalinacatalina.policycatalina.propertiescontext.xmllogging.propertiesserver.xmltomcat-
# vim tomcat-users.xml  http://s3.运维网.com/wyfs02/M02/8C/32/wKioL1hlIZbSFPqPAAAOuznD9b8329.png
   3.重启tomcat服务
# su - tomcat -c 'catalina.sh stop'
su: warning: cannot change directory to /home/tomcat: No such file or directory
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
# ss -tnl
State       Recv-Q Send-Q                                    Local Address:Port                                                   Peer Address:Port            
LISTEN      0      128                                                   *:22                                                                  *:*                  
LISTEN      0      128                                             127.0.0.1:631                                                               *:*                  
LISTEN      0      100                                             127.0.0.1:25                                                                  *:*                  
LISTEN      0      128                                             127.0.0.1:6011                                                                *:*                  
LISTEN      0      25                                                      *:514                                                               *:*                  
LISTEN      0      128                                                    :::22                                                               :::*                  
LISTEN      0      128                                                   ::1:631                                                                :::*                  
LISTEN      0      100                                                   ::1:25                                                               :::*                  
LISTEN      0      128                                                   ::1:6011                                                               :::*                  
LISTEN      0      25                                                   :::514                                                                :::*                  
# su - tomcat -c 'catalina.sh start'
su: warning: cannot change directory to /home/tomcat: No such file or directory
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.
# ss -tnl
State       Recv-Q Send-Q                                    Local Address:Port                                                   Peer Address:Port            
LISTEN      0      128                                                   *:22                                                                  *:*                  
LISTEN      0      128                                             127.0.0.1:631                                                               *:*                  
LISTEN      0      100                                             127.0.0.1:25                                                                  *:*                  
LISTEN      0      128                                             127.0.0.1:6011                                                                *:*                  
LISTEN      0      25                                                      *:514                                                               *:*                  
LISTEN      0      100                                                    :::8009                                                               :::*                  
LISTEN      0      100                                                    :::8080                                                               :::*                  
LISTEN      0      128                                                    :::22                                                               :::*                  
LISTEN      0      128                                                   ::1:631                                                                :::*                  
LISTEN      0      100                                                   ::1:25                                                               :::*                  
LISTEN      0      128                                                   ::1:6011                                                               :::*                  
LISTEN      0      25                                                   :::514                                                                :::*   4.在浏览器中再次请求访问manager App输入用户名tomcat,密码tomcat登录后就可以进行部署了,如下:
http://s1.运维网.com/wyfs02/M01/8C/35/wKiom1hk_aviZGkkAAGO9pGIquc821.png
http://s5.运维网.com/wyfs02/M02/8C/35/wKiom1hk_m-SCL4TAADIM3PPPFg451.png
http://s5.运维网.com/wyfs02/M02/8C/32/wKioL1hk_m_DEmZyAACRotb78Gw197.png
  http://s4.运维网.com/wyfs02/M00/8C/32/wKioL1hlAP7R9wr4AABY6UJY7pA363.png
   5.我们也可以点击Server Statua查案当前服务器状态,如下:
  
http://s3.运维网.com/wyfs02/M01/8C/32/wKioL1hlAsXzPKW8AADlJjErg5Y288.png
http://s3.运维网.com/wyfs02/M02/8C/35/wKiom1hlAsbw2vxzAABkgRXF5_Y432.png
http://s3.运维网.com/wyfs02/M02/8C/32/wKioL1hlAsbQABRIAABFa6ICB6w277.png
  
Tomcat的常用组件配置:(conf/server.xml)
每个组件几乎都是通过特有的类来实现,而且有的组件还不止一种实现方式
1.Server:
★代表tomcat instance(实例),即表现出的一个jvm进程;监听在8005端口,只接收“SHUTDOWN”。各server监听的端口不能相同,因此,在同一物理主机启动多个实例时,需要修改其监听端口为不同的端口;
http://s3.运维网.com/wyfs02/M01/8C/35/wKiom1hlDseQc35pAAAJGeYIZQ4628.png

2.Service:
★用于实现将一个或多个connector组件关联至一个engine组件;
http://s2.运维网.com/wyfs02/M01/8C/32/wKioL1hlFKHDlUudAAAF8YEGgUo242.png
  3.Connector(连接器)组件:接入前端用户请求
★进入tomcat的请求可分为两类:
☉standalone:

[*]Tomcat作为独立的应用程序服务器,请求来自于客户端浏览器;
◆可用的连接器:

[*]httpd,https

☉由其它的web server反代:

[*]Tomcat作为应用程序服务器,请求将来自于前端的反代服务器;
◆可用的连接器:

[*]nginx --> http/https connector --> tomcat
[*]httpd --> http/https/ajp connector --> tomcat
★属性:

[*]address:                     监听的IP地址;默认为本机所有可用地址;
[*]maxThreads:            最大并发连接数,默认为150;
[*]port:                           监听的端口;
[*]protocol:                  连接器使用的协议,一般为HTTP/1.1或AJP/1.3;
[*]redirecport:                重定向到的端口;
[*]connectionTimeout:连接的超时时长,单位为毫秒,默认为60000;
[*]enableLookups:         是否启用DNS查询功能;
[*]acceptCount:             定义等待队列的最大长度;
[*]scheme:                   客户端请求时对应映射的协议的类型;
[*]debug:                     连接器的调试功能
[*]secure:                      安全模式(ssl)
[*]clientAuth:               是否验证客户端证书;
[*]sslProtocol:                安全证书的协议版本,建议使用TLS;
http://s1.运维网.com/wyfs02/M00/8C/36/wKiom1hlHh_iOrn2AABkn2BoCws450.png
  

  
4.Engine组件:
★作用:

[*]Servlet实例,即servlet引擎,其内部可以有一个或多个host组件来定义站点; 通常需要通过defaultHost来定义默认的虚拟主机;
★属性:

[*]name=
[*]defaultHost="localhost"
[*]jvmRoute=
http://s1.运维网.com/wyfs02/M01/8C/32/wKioL1hlIBDQ4V2wAAAHiaq7LoY558.png
  
5.Host组件:
★作用:

[*]位于engine内部用于接收请求并进行相应处理的主机或虚拟主机;
★属性:
◆appBase:

[*]此Host的webapps的默认存放目录,指存放非归档的web应用程序的目录或归档的WAR文件目录路径;可以使用基于$CATALINA_BASE变量所定义的路径的相对路径;
◆ autoDeploy:

[*]在Tomcat处于运行状态时,将某webapp放置于appBase所定义的目录中时,是否自动将其部署至tomcat;
◆unpackWARs:

[*]在启用webapps时,是否对WAR格式的归档文件先进行展开,默认为ture;
http://s5.运维网.com/wyfs02/M00/8C/35/wKioL1hlzfOjhGNuAAAMHZASrBo833.png
  演示:定义虚拟主机
  1.编辑/usr/local/tomcat/conf/server.xml再添加一个主机名为node1.taotao.com的虚拟主机,如下:
http://s1.运维网.com/wyfs02/M00/8C/3A/wKiom1hl0p_xNXP5AABpkM4D8hc648.png
  

   2.创建相应的目录,并提供测试页面要放在ROOT目录之下,如下:
# mkdir -pv /data/webapps/ROOT/{classes,lib,WEB-INF,META-INF}
mkdir: created directory ‘/data/webapps’
mkdir: created directory ‘/data/webapps/ROOT’
mkdir: created directory ‘/data/webapps/ROOT/classes’
mkdir: created directory ‘/data/webapps/ROOT/lib’
mkdir: created directory ‘/data/webapps/ROOT/WEB-INF’
mkdir: created directory ‘/data/webapps/ROOT/META-INF’
# vim /data/webapps/ROOT/index.jsp



   
      Test Page
   
   
      
   
   3.停止tomcat服务,检测语法,没问题然后重启tomcat服务,如下:
# su - tomcat -c 'catalina.sh stop'
su: warning: cannot change directory to /home/tomcat: No such file or directory
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
# catalina.sh configtest# 语法检测
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
Dec 30, 2016 11:30:38 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version:      Apache Tomcat/8.0.23
Dec 30, 2016 11:30:38 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          May 19 2015 14:58:38 UTC
Dec 30, 2016 11:30:38 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number:         8.0.23.0
Dec 30, 2016 11:30:38 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         /usr/local/apache-tomcat-8.0.23
Dec 30, 2016 11:30:38 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         /usr/local/apache-tomcat-8.0.23
Dec 30, 2016 11:30:38 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
Dec 30, 2016 11:30:38 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=/usr/local/tomcat/endorsed
Dec 30, 2016 11:30:38 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=/usr/local/tomcat
Dec 30, 2016 11:30:38 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=/usr/local/tomcat
Dec 30, 2016 11:30:38 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
Dec 30, 2016 11:30:38 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Dec 30, 2016 11:30:38 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Dec 30, 2016 11:30:38 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Dec 30, 2016 11:30:38 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
Dec 30, 2016 11:30:38 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Dec 30, 2016 11:30:38 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1408 ms
# su - tomcat -c 'catalina.sh start' # 启动服务
su: warning: cannot change directory to /home/tomcat: No such file or directory
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.   4.找一台能够解析node1的主机测试,发现可以正常访问定义的虚拟主机,如下:
# curl http://node1.taotao.com:8080


   
       Test Page
   
   
       hello world from node1
   
   5.除此之外,我们也可以在tomcat的页面中通过Host Manager进行管理,管理之前同Manager App一样需要首先添加角色,并使用户属于此角色,如下,编辑/usr/local/tomcat/conf/tomcat/users.xml
https://s2.运维网.com/wyfs02/M00/8C/37/wKioL1hl20CB05RsAAAUG0OnY40442.png
     重启tomcat服务,然后再次访问就可以看到虚拟主机的管理界面额了,如下:
  
http://s5.运维网.com/wyfs02/M01/8C/3B/wKiom1hl3HTRiR_6AADYT_S3Sjc536.png
http://s5.运维网.com/wyfs02/M01/8C/37/wKioL1hl3HXxylLTAABDETmUIV8933.png
  
6.Context组件:
★作用:

[*]Context在某些意义上类似于apache中的路径别名,一个Context定义用于标识tomcat实例中一个Web应用程序;
★属性:
◆docBase:

[*]相应web应用程序的存放位置;也可以使用相对路径,起始路径为此Contaxt所属Host中appBase定义的路径;切记,docBase的路径名不能与相应的Host中appBase中定义的路径名有包含关系,比如:appBase为deploy,而docBase绝不能为deploy-bb类的名字;
◆path:

[*]相对于web服务器根路径而言的URI;如果为空"",则表示为此webapp的根路径;如果context定义在一个单独的xml文件中,此属性不需要定义;
◆reloadable:

[*]是否允许重新加载此context相关的Wen应用程序的类;默认为false;
示例:
https://s2.运维网.com/wyfs02/M01/8F/04/wKiom1jRRZijeUPgAAAOQqtsiUw336.png
  演示:定义Context标识tomcat实例中一个web应用程序
1.编辑配置文件conf/server.xml在上例中定义个Host中定义Context如下:
http://s5.运维网.com/wyfs02/M02/8C/38/wKioL1hl6eqBDA27AAAfXzNqGcc031.png
   2.为testapp提供相关目录及测试页面,如下:
# cp -r /data/webapps/ROOT/ /data/webapps/testapp
# vim /data/webapps/testapp/index.jsp



   
      Test Page for Context
   
   
      
   
   3.重启tomcat服务,在能够解析node1的主机上使用curl请求,可以正常访问web资源,如下:
# curl http://node1.taotao.com:8080/test/


   
       Test Page for Context
   
   
       hello world from /data/webapps/testapp
   
  

7.Valve组件:
★作用:

[*]Value组件类似于过滤器,它可以工作于Engine和Host/Context之间、Host和Context之间以及Context和Web应用程序的某资源之间。一个容器可以建多个Value,而且Value定义的次序也决定了他们生效的次序。
★Valve存在多种类型:

[*]定义访问日志:org.apache.catalina.valves.AccessLogValve
[*]定义基于远程地址的访问控制:org.apache.catalina.valves.RemoteAddrValve
[*]定义基于主机名的访问控制:org.apache.catalina.valves.RemoteHostValve
http://s1.运维网.com/wyfs02/M01/8C/3D/wKioL1hmIHKihK_TAAAVoyxNg4M874.png
☉RemoteHostValve 和RemoteAddrValve

[*]可以分别用来实现基于主机名称和ip地址的访问控制,控制本身可通过allow或deny来进行定义,这点类似于Apache的访问控制功能;
☉相关属性定义:
◆className:

[*]相关的java实现的类名,相应于分别应该为org.apache.catalina.valves.RemoteHostValve 或org.apache.catalina.valves.RemoteHostValve ;
◆allow:

[*]以逗号分开的允许访问的IP地址列表,支持正则表达式,因此,点号“.”用于IP地址时需要转义;仅定义allow项时,非明确allow的地址均被deny;
◆deny:

[*]以逗号分开的禁止访问的IP地址列表,支持正字表达式,使用方式同allow
http://s1.运维网.com/wyfs02/M00/8C/3E/wKioL1hmMNbTrPGXAAAM52xZw3I329.png
  演示1:定义访问日志
1.编辑conf/server.xml在之前定义的虚拟主机node1.taotao.com上定义访问日志,如下:

http://s1.运维网.com/wyfs02/M02/8C/3D/wKioL1hmJzzioD_rAAAttA39eKc640.png
   2.重启tomcat服务,访问虚拟主机,并查看在/usr/local/tomcat/logs中查看定义的访问日志,如下:
# 重启tomcat服务
# su - tomcat -c 'catalina.sh stop'
# su - tomcat -c 'catalina.sh configtest'
# su - tomcat -c 'catalina.sh start'
# 访问此虚拟主机的web资源
# curl http://node1.taotao.com:8080


   
       Test Page
   
   
       hello world from /data/webapps
   

# curl http://node1.taotao.com:8080/test/


   
       Test Page for Context
   
   
       hello world from /data/webapps/testapp
   

# 查看访问日志
# cat node1_access_log.2016-12-30.log
192.168.1.113 - - "GET / HTTP/1.1" 200 130
192.168.1.113 - - "GET /test/ HTTP/1.1" 200 151
192.168.1.113 - - "GET / HTTP/1.1" 200 130  演示2:定义基于远程IP的访问控制
   1.编辑conf/server.xml在之前定义的虚拟主机node1.taotao.com的Context中定义禁止192.168.1.112主机访问,如下:
  http://s3.运维网.com/wyfs02/M01/8C/3E/wKioL1hmL-GiFWdeAAA9iSstMrc340.png
      2.重启tomcat服务,访问虚拟主机node1.taotao.com下的test资源,可以发现禁止访问,可见这里定义的访问控制生效
# 没有定义访问控制的可以继续访问
# curl http://node1.taotao.com:8080/

   
       Test Page
   
   
       hello world from /data/webapps
   

# 定义访问控制的/test 被被禁止
# curl http://node1.taotao.com:8080/test/
Apache Tomcat/8.0.23 - Error reportH1
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3
{color : black;}A.name {color : black;}.line {height: 1px; background-color: #525D76;
border: none;} HTTP Status 403 - type
Status reportmessage description Access to the specified resource
has been forbidden.Apache Tomcat/8.0.23  

  

  

  

  

  

  

  




页: [1]
查看完整版本: Tomcat的安装、部署和常用组件