转自http://freeloda.blog.51cto.com/2033581/1300915

一、基础使用配置

我们在上一篇文章中已经安装部署好了tomcat服务(http://ly36843.blog.51cto.com/3120113/1662758),这里我们用浏览器访问以下页面,地址是http://192.168.3.68:8080

配置tomcat服务_第1张图片

1.telnet 登录管理Tomcat

注,在说telnet管理Tomcat之前,我们得先看一下默认的配置文件,这里面定义了默认的管理端口

说明,定义了一个管理端口为8005,我们可以用telnet直接登录进本机的8005端口,来执行SHUTDOWN命令,来关闭Tomcat实例。下面我们来具体演示一下

先安装telnet客户端

[root@tomcat ~]# yum install telnet -y

我们测试一下

root@tomcat ~]# telnet localhost 8005
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SHUTDOWN        #执行关闭tomcat命令
Connection closed by foreign host.
[root@tomcat ~]# netstat -anpt        #所有的tomcat进程都关闭了
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1233/sshd           
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1329/master         
tcp        0      0 192.168.3.68:22             192.168.3.2:5424            ESTABLISHED 1449/sshd           
tcp        0      0 :::22                       :::*                        LISTEN      1233/sshd           
tcp        0      0 ::1:25                      :::*                        LISTEN      1329/master

注,大家可以看到Tomcat服务器已经关闭。好了,telnet管理我们就说到这里,下面我们来说一下,Tomcat虚拟主机的配置。

2.配置Tomcat虚拟主机

注,在说Tomcat虚拟主机之前,咱们来详细的看看默认的配置文件,虽然在上一篇博客中全部有讲解,在这篇博客中我还是再和大家简单说一下,下面是默认配置文件。大家可以看到,绝大部分的配置文件是注释,包含在、全是注释。下面我们就来具体的看看,注释我们就不说了,说具体的定义的内容

[root@tomcat ~]# cat /usr/local/tomcat/conf/server.xml



 #大家可以看到,这里是我们刚才讲解的,定义一个管理接口
 
 
 
 
 
 
 
 
 
 
 
  
  
 
 
  #定义一个Service命令为Catalina
  
  
  
   #这里定义了一个连接器,协议为http,端口为8080,最大连接超时为20s,这里还定义了一个SSL的重定向端口8443。我们可以根据需要进行修改。一般我们都用80端口与443端口。
  
  
  
  
  
   #这里定义了一个支持AJP协议的连接器。
  
  
   #这里定义了一个名为Catalina的引擎,并定义了一个默认主机为localhost。
   
   
   
   
    
    
   
    #这里就是定义的虚拟主机。
    
    
    
     #这里定义了一个日志相关的属性。
   
  
 

好了,在这里我们又简单的说明一下,配置文件下面我们就来具体演示一下怎么配置虚拟主机。

首先,我们来修改一下配置文件

[root@tomcat ~]# vim /usr/local/tomcat/conf/server.xml 

                

接下来我们来创建文档目录与测试页面

[root@tomcat ~]# mkdir -pv /web/webapp
[root@tomcat ~]# cd /web/webapp/
[root@tomcat webapp]# cat index.jsp 
<%@ page language="java" %>
<%@ page import="java.util.*" %>

 
  JSP test page.
 
 
  <% out.println("Welcome to test. Site, http://www.test.com"); %>
 

现在我们来测试一下我们修改的配置文件

[root@tomcat ~]# service tomcat configtest
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_45
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Jun 18, 2015 10:27:16 AM org.apache.catalina.core.StandardContext setPath
WARNING: A context path must either be an empty string or start with a '/' and do not end with a '/'. The path [/] does not meet these criteria and has been changed to []
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version:        Apache Tomcat/7.0.62
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          May 7 2015 17:14:55 UTC
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number:         7.0.62.0
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Linux
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            2.6.32-358.el6.x86_64
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             /usr/local/jdk1.8.0_45/jre
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_45-b14
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         /usr/local/tomcat
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         /usr/local/tomcat
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=/usr/local/tomcat/endorsed
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=/usr/local/tomcat
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=/usr/local/tomcat
Jun 18, 2015 10:27:16 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
Jun 18, 2015 10:27:16 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
Jun 18, 2015 10:27:17 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jun 18, 2015 10:27:17 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jun 18, 2015 10:27:17 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1165 ms

注,大家可以看到,我们这里没有报错,说明配置都是正确的,若配置有错误,会在最后一行提醒你。

再下面我们来启动Tomcat并测试一下

[root@tomcat ~]# 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/local/jdk1.8.0_45
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1233/sshd           
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1329/master         
tcp        0      0 :::8080                     :::*                        LISTEN      1874/java           
tcp        0      0 :::22                       :::*                        LISTEN      1233/sshd           
tcp        0      0 ::1:25                      :::*                        LISTEN      1329/master         
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      1874/java           
tcp        0      0 :::8009                     :::*                        LISTEN      1874/java

测试

配置tomcat服务_第2张图片

我们将端口修改成80再次测试下

[root@tomcat ~]# vim /usr/local/tomcat/conf/server.xml 

               
#重启tomcat服务
[root@tomcat ~]# 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/local/jdk1.8.0_45
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@tomcat ~]# 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/local/jdk1.8.0_45
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1233/sshd           
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1329/master         
tcp        0      0 :::80                       :::*                        LISTEN      1953/java           
tcp        0      0 :::22                       :::*                        LISTEN      1233/sshd           
tcp        0      0 ::1:25                      :::*                        LISTEN      1329/master         
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      1953/java           
tcp        0      0 :::8009                     :::*                        LISTEN      1953/java

再次访问页面,这次通过80端口直接访问

配置tomcat服务_第3张图片

Host组件:

位于Engine容器中用于接收请求并进行相应处理的主机或虚拟主机,如前面我们自定义的内容:


     

常用属性说明:

name:定义虚拟主机的域名

  • appBase:此Host的webapps目录,即存放非归档的web应用程序的目录或归档后的WAR文件的目录路径;可以使用基于$CATALINA_HOME的相对路径;

  • autoDeploy:在Tomcat处于运行状态时放置于appBase目录中的应用程序文件是否自动进行deploy;默认为true;

  • unpackWars:在启用此webapps时是否对WAR格式的归档文件先进行展开;默认为true;

主机别名定义:

如果一个主机有两个或两个以上的主机名,额外的名称均可以以别名的形式进行定义,如下: 


 web.test.com

Context组件:
Context在某些意义上类似于apache中的路径别名,一个Context定义用于标识tomcat实例中的一个Web应用程序。如下面的定义:
  
  
  
  
  
  
   
  
  

在Tomcat中,每一个context定义也可以使用一个单独的XML文件进行,其文件的目录为$CATALINA_HOME/conf//。可以用于Context中的XML元素有Loader,Manager,Realm,Resources和WatchedResource。

常用的属性定义有:

  • docBase:相应的Web应用程序的存放位置;也可以使用相对路径,起始路径为此Context所属Host中appBase定义的路径;切记,docBase的路径名不能与相应的Host中appBase中定义的路径名有包含关系,比如,如果appBase为deploy,而docBase绝不能为deploy-bbs类的名字;

  • path:相对于Web服务器根路径而言的URI;如果为空“”,则表示为此webapp的根路径;如果context定义在一个单独的xml文件中,此属性不需要定义;

  • reloadable:是否允许重新加载此context相关的Web应用程序的类;默认为false;

为了便于大家理解,我们这里再定义一个Context并测试一下,

我们先来修改一下配置文件

[root@tomcat ~]# vim /usr/local/tomcat/conf/server.xml 

                
                    #增加这一行

下面来增加目录文档与测试文件

[root@tomcat ~]# mkdir /web/test
[root@tomcat ~]# cat /web/test/index.jsp
<%@ page language="java" %>

 TomcatA
 
  

TomcatA 

           Session ID   <% session.setAttribute("abc","abc"); %>     <%= session.getId() %>             Created on     <%= session.getCreationTime() %>         

测试一下配置文件是否有错并启动Tomcat

[root@tomcat ~]# service tomcat stop
[root@tomcat ~]# service tomcat configtest
[root@tomcat ~]# 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/local/jdk1.8.0_45
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

测试结果

配置tomcat服务_第4张图片

好了,到这里我们的Tomcat虚拟主机的讲解就到这里了,下面我们来说一下Tomcat图形管理接口。

3.Tomcat图形管理接口

  • manager 管理应用程序的部署及监控

  • host-manager 虚拟主机的管理

我们先来看一下默认的图形配置界面

配置tomcat服务_第5张图片


注,大家注意看右上角,大家可以看有三个按钮,分别为

  • Server Status 主要用来查看服务器的状态

  • Manager App 主要用来管理应用程序的部署及监控

  • Host Manager 主要用来管理虚拟主机

下面我们就来具休的配置一下,大家可以看到,你点击任何一个按钮都要输入用户名和密码的,在我们配置之前我们先来说一下,Tomcat的Manager功能,

Manager的四个管理角色:

  • manager-gui - allows access to the HTML GUI and the status pages

  • manager-script - allows access to the text interface and the status pages

  • manager-jmx - allows access to the JMX proxy and the status pages

  • manager-status - allows access to the status pages only

注,这里我说一下,上面的英文比较简单我就不在里翻译了,大家自己看一下。

下面我们就来启用manager功能,修改tomcat-user.xml文件,添加如下行:

[root@tomcat ~]# vim /usr/local/tomcat/conf/tomcat-users.xml


简单解释一下,Tomcat有内置的角色,我们这里增加了两个角色一个为manager-gui,另一个为admin-gui,用户名和密码都为tomcat。

注,增加的内容一定要在之间。不然,不会生效。好了,下面我们一来测试一下配置文件,并重新启动一下Tomcat,过程略

用浏览器访问以下结果

注,点击Server Status按钮,让你输入用户名和密码。我这里全部设置是tomcat。

配置tomcat服务_第6张图片

配置tomcat服务_第7张图片

注,我们一般在生产环境中用的最多是应用程序部署界面,可以进行热布署应用程序,很方便,大家可以尝试一下。好了,图形管理界面我们就说到这里了.