转自http://freeloda.blog.51cto.com/2033581/1300915
一、基础使用配置
我们在上一篇文章中已经安装部署好了tomcat服务(http://ly36843.blog.51cto.com/3120113/1662758),这里我们用浏览器访问以下页面,地址是http://192.168.3.68:8080
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
测试
我们将端口修改成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端口直接访问
Host组件:
位于Engine容器中用于接收请求并进行相应处理的主机或虚拟主机,如前面我们自定义的内容:
常用属性说明:
name:定义虚拟主机的域名
appBase:此Host的webapps目录,即存放非归档的web应用程序的目录或归档后的WAR文件的目录路径;可以使用基于$CATALINA_HOME的相对路径;
autoDeploy:在Tomcat处于运行状态时放置于appBase目录中的应用程序文件是否自动进行deploy;默认为true;
unpackWars:在启用此webapps时是否对WAR格式的归档文件先进行展开;默认为true;
主机别名定义:
如果一个主机有两个或两个以上的主机名,额外的名称均可以以别名的形式进行定义,如下:
Context组件: Context在某些意义上类似于apache中的路径别名,一个Context定义用于标识tomcat实例中的一个Web应用程序。如下面的定义: web.test.com
在Tomcat中,每一个context定义也可以使用一个单独的XML文件进行,其文件的目录为$CATALINA_HOME/conf/
常用的属性定义有:
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虚拟主机的讲解就到这里了,下面我们来说一下Tomcat图形管理接口。
3.Tomcat图形管理接口
manager 管理应用程序的部署及监控
host-manager 虚拟主机的管理
我们先来看一下默认的图形配置界面
注,大家注意看右上角,大家可以看有三个按钮,分别为
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。
注,增加的内容一定要在
用浏览器访问以下结果
注,点击Server Status按钮,让你输入用户名和密码。我这里全部设置是tomcat。
注,我们一般在生产环境中用的最多是应用程序部署界面,可以进行热布署应用程序,很方便,大家可以尝试一下。好了,图形管理界面我们就说到这里了.