tomcat安装与配置文件

一 安装tomcat
1.系统必须已安装配置JDK
安装说明参考地址:http://www.cnblogs.com/Yuanbangchen/p/5945491.html
 
2.将apache-tomcat-8.0.29.tar.gz文件上传到/usr/local中执行以下操作
将上传的Tomcat8.0解压,解压之后重命名为tomcat.
tar -zxv -f apache-tomcat-8.0.29.tar.gz
mv apache-tomcat-8.0.29 tomcat
 
3.启动tomcat
/usr/local/tomcat/bin/startup.sh
/usr/local/tomcat/bin/shutdown.sh   //停止tomcat  
 

服务器启动和关闭vim /etc/rc.d/init.d/tomcat

#!/bin/bash
# /etc/rc.d/init.d/tomcat
# init script for tomcat precesses
# processname: tomcat
# description: tomcat is a j2se server
# chkconfig: 2345 86 16
# description: Start up the Tomcat servlet engine.

if [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
else
echo -e "\atomcat: unable to locate functions lib. Cannot continue."
exit -1
fi
RETVAL=$?
CATALINA_HOME="/usr/local/kencery/tomcat" #tomcat安装目录,你安装在什么目录下就复制什么目录
case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
$CATALINA_HOME/bin/startup.sh
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
$CATALINA_HOME/bin/shutdown.sh
fi
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
;;
esac
exit $RETVAL

Linux

给文件添加权限,使得脚本文件可以执行,命令为 chmod 755 /etc/rc.d/init.d/tomcat
将其添加到服务中,命令为 chkconfig --add /etc/rc.d/init.d/tomcat
然后将下面的配置文件加到tomcat中的catalina.sh文件中的最后面,命令为:vim /usr/local/kencery/tomcat/bin/catalina.sh
    export JAVA_HOME=/usr/local/kencery/javajdk #javajdk的安装路径,使用echo $JAVA_HOME命令可以读取
    export CATALINA_HOME=/usr/local/kencery/tomcat
    export CATALINA_BASE=/usr/local/kencery/tomcat
    export CATALINA_TMPDIR=/usr/local/kencery/tomcat/temp
以上所有工作顺利进行并且没有报错,则配置完成,你可以输入命令service tomcat start和service tomcat stop

设置tomcat的开机启动

 通过第三步的设置我们可以很方便的设置tomcat的启动和关闭,但是这里存在一个问题,那就是当服务器关机重启的时候,服务不能随计算机的启动而自己启动,那么我们可以将tomcat服务设置为开机启动。
打开linux设置开启启动的文件,将下面的配置文件写入此文件的最后,命令为:vim /etc/rc.d/rc.local
    export JAVA_HOME=/usr/local/kencery/javajdk
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    export CATALINA_HOME=/usr/local/kencery/tomcat/
    #tomcat自启动
    /usr/local/kencery/tomcat/bin/startup.
  tomcat依赖于Java的jdk,所以设置的时候讲jdk也同步导入。
 
 
 
防火墙设设置     或者编辑配件文件/vim /etc/sysconfig/iptables
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 8080 -j ACCEPT
service iptables save
 
5.检验Tomcat安装运行
http://x.x.x.x:8080
二 配置文件说明

TOMCAT的目录结构

  • /bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件
  • /conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml
  • /doc:存放Tomcat文档
  • /server:包含三个子目录:classes、lib和webapps
  • /server/lib:存放Tomcat服务器所需的各种JAR文件
  • /server/webapps:存放Tomcat自带的两个WEB应用admin应用和 manager应用
  • /common/lib:存放Tomcat服务器以及所有web应用都可以访问的jar文件
  • /shared/lib:存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问)
  • /logs:存放Tomcat执行时的日志文件
  • /src:存放Tomcat的源代码
  • /webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录
  • /work:存放JSP编译后产生的class文件

 

TOMCAT的  web应用项目例子

WEB应用的目录结构:假设在$CATALINA_HOME/webapps下有helloapp的web应用
    /helloapp:Web应用的根目录,所有的jsp文件和html文件都在此目录下
    /helloapp/WEB_INF:存放该web应用发布时的描述文件web.xml
    /helloapp/WEB_INF/class:存放各种class文件,Servlet文件也存放于此目录下
    /helloapp/WEB_INF/lib:存放各钟Web应用所需要的jar文件。比如可以存放JDBC驱动程序的JAR文件
Tomcat加载类和资源的顺序为(以helloapp应用为例)
    helloapp (/webapps/helloapp/Web-INF/下的classes,lib子目录中*.calss及*.jar,仅helloapp可以加载)
    Bootstrap ($JAVA_HOME/jre/lib/ext/*.jar)
    System ($CLASSPATH/*.class和CLASSPATH中指定的jar)
    Common ($CATALINA_HOME/common/下的classes,lib,endores子目录中*.class及*.jar)
    Catalina ($CATALINA_HOME/server/下的classes,lib子目录中*.calss及*.jar,仅Tomcat可以加载)
    Shared ($CATALINA_HOME/shared/下的classes,lib子目录中*.calss及*.jar,仅所有Web应用可以加载)

$CATALINA_HOME/conf/server.xml结构层次与配置简介

<Server>1
    <Listener  />2
    <Listener  />2
    <GlobalNamingResources> 2
        <Resource  />
    </GlobalNamingResources>2
    <Service>2
        <Connector/> 3
        <Connector/> 3
        <Engine> 3
            <Logger />4
            <Realm> 4
                 <Realm/>5
            </Realm>4
            <Host > 4
                 <Logger />5
                  <Context />5
            </Host>4
        </Engine>3
    </Service>2
</Server>1

tomcat/conf/server.xml说明:

元素名

属性

解释

server

port

指定一个端口,这个端口负责监听关闭tomcat 的请求

shutdown

指定向端口发送的命令字符串

service

name

指定service 的名字,通常是”Catalina”

Connector ( 表示客户端和service之间的连接)

port

指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求

minProcessors

maxProcessors

服务器启动时创建的处理请求的线程数

最大可以创建的处理请求的线程数

 

maxThreads

minSpareThreads

maxSpareThreads

 

服务器创建的最大线程数

最小剩余线程数

最大剩余线程数

enableLookups

如果为true ,则可以通过调用request.getRemoteHost() 进行DNS 查询来得到远程客户端的实际主机名,若为false 则不进行DNS 查询,而是返回其ip 地址

redirectPort

指定服务器正在处理http 请求时收到了一个SSL 传输请求后重定向的端口号

acceptCount

指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

connectionTimeout

指定超时的时间数( 以毫秒为单位)

Engine ( 表示指定service 中的请求处理机,接收和处理来自Connector的请求)

defaultHost

指定缺省的处理请求的主机名,name:指定Engine的名字,通常是”Catalina”defaultHost:指定默认的处理请求的主机名,至少与某个host元素的name属性值是相同的.

Context ( 表示一个web 应用程序,通常为WAR 文件,关于WAR 的具体信息见servlet 规范)

docBase

应用程序的路径或者是WAR 文件存放的路径

path

表示此Web应用程序的url的入口,如为“/hello“,则请求的URL为http://localhost:8080/hello/reloadable:如果为true,则Tomcat在运行时会自动监视Web应用的/WEB-INF/lib和/WEB-INF/classes下文件的改动,自动装载新应用,使我们可以在不重启Tomcat的情况下更新Web应用

reloadable

这个属性非常重要,如果为true ,则tomcat 会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes 目录的变化,自动装载新的应用程序,我们可以在不重起tomcat 的情况下改变应用程序

host ( 表示一个虚拟主机 )

name

debug

truealias

指定主机名

指定日志级别

指定虚拟主机的别名,可以指定多个别名

appBase

应用程序基本目录,即存放应用程序的目录,相对路径也可以

unpackWARs

 

deployOnStartup

如果为true,则tomcat会自动将WAR文件解压后运行,否则不解压而直接从WAR文件中运行应用程序autoDeploy:如果为true,表示Tomcat启动时会自动发布appBase目录下所有的Web应用(包括新加入的Web应用)

如果此项为true,表示Tomcat服务器启动时会自动发布appBase目录下所有Web应用。如果Web应用在server.xml中没有相应的<Context>元素,则将采用默认的Context配置。deployOnStarup的默认设置是

Logger ( 表示日志,调试和错误信息)

className

指定logger 使用的类名,此类必须实现org.apache.catalina.Logger 接口

prefix

指定log 文件的前缀

suffix

指定log 文件的后缀

timestamp

txtdirectory:

如果为true ,则log 文件名中要加入时间,如下例:localhost_log.2001-10-04.txt

指定log文件存放的目录

Realm ( 表示存放用户名,密码及role 的数据库)

className

指定Realm 使用的类名,此类必须实现org.apache.catalina.Realm 接口

Valve ( 功能与Logger 差不多,其prefix 和suffix 属性解释和Logger 中的一样)

className

指定Valve 使用的类名,如用org.apache.catalina.valves.AccessLogValve 类可以记录应用程序的访问信息

directory

指定log 文件存放的位置

pattern

有两个值,common 方式记录远程主机名或ip 地址,用户名,日期,第一行请求的字符串,HTTP 响应代码,发送的字节数。combined 方式比common 方式记录的值更多

 

 

<Server>元素(第一层)
它代表整个容器,是Tomcat实例的顶层元素.由org.apache.catalina.Server接口来定义.它包含一个<Service>元素.并且它不能做为任何元素的子元素. 

<!-- 一个“Server”是一个提供完整的JVM的独立组件,它可以包含一个或多个“Service”实例。服务器在指定的端口上监听shutdown命令。

注意:一个“Server”自身不是一个“Container”(容器),因此在这里你不可以定义诸如“Valves”或者“Loggers”子组件

启动Server在端口8005处等待关闭命令如果接受到"SHUTDOWN"字符串则关闭服务器-->

<!-- 启动Server在端口8005处等待关闭命令如果接受到"SHUTDOWN"字符串则关闭服务器

在端口8005处等待关闭命令如果接受到"SHUTDOWN"字符串则关闭服务器
如果接受到"SHUTDOWN"字符串则关闭服务器
-->
测试:

telnet localhost 8005   
输入:SHUTDOWN
结果:关闭tomcat

 

<Service>元素 
该元素由org.apache.catalina.Service接口定义,它包含一个<Engine>元素,以及一个或多个<Connector>,这些Connector元素共享用同一个Engine元素
    <Service name="Catalina">
    <Service name="Apache">
    第一个<Service>处理所有直接由Tomcat服务器接收的web客户请求.
    第二个<Service>处理所有由Apahce服务器转发过来的Web客户请求

1> className 指定实现org.apahce.catalina.Service接口的类.默认为org.apahce.catalina.core.StandardService
2> name定义Service的名字

 <Engine>元素 

每个Service元素只能有一个Engine元素.元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求.由org.apahce.catalina.Engine接口定义.

<Engine name="Catalina" defaultHost="localhost" debug="0">

1> className指定实现Engine接口的类,默认值为StandardEngine
2> defaultHost指定处理客户的默认主机名,在<Engine>中的<Host>子元素中必须定义这一主机
3> name定义Engine的名字

在<Engine>可以包含如下元素<Logger>, <Realm>, <Value>, <Host>

 

<Host>元素 
它由Host接口定义.一个Engine元素可以包含多个<Host>元素.每个<Host>的元素定义了一个虚拟主机.它包含了一个或多个Web应用.

 <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">

1> className指定实现Host接口的类.默认值为StandardHost
2> appBase指定虚拟主机的目录,可以指定绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录.如果没有此项,默认为<CATALINA_HOME>/webapps
3> autoDeploy如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用
4> unpackWARs如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行.如果设为false将直接运行为WAR文件
5> alias指定主机别名,可以指定多个别名
6> deployOnStartup如果此项设为true,表示Tomcat服务器启动时会自动发布appBase目录下所有的Web应用.如果Web应用中的server.xml没有相应的<Context>元素,将采用Tomcat默认的Context
7> name定义虚拟主机的名字

在<Host>元素中可以包含如下子元素 
<Logger>, <Realm>, <Value>, <Context>


<Context>元素 
它由Context接口定义.是使用最频繁的元素.每个<Context元素代表了运行在虚拟主机上的单个Web应用.一个<Host>可以包含多个<Context>元素.每个web应用有唯一
的一个相对应的Context代表web应用自身.servlet容器为第一个web应用创建一个
ServletContext对象.

<Context path="/sample" docBase="sample" debug="0" reloadbale="true">

1> className指定实现Context的类,默认为StandardContext类
2> path指定访问Web应用的URL入口,注意/myweb,而不是myweb了事
3> reloadable如果这个属性设为true, Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改运.如果监视到有class文件被更新,服务器自重新加载Web应用
3> cookies指定是否通过Cookies来支持Session,默认值为true
4> useNaming指定是否支持JNDI,默认值为了true

在<Context>元素中可以包含如下元素 
<Logger>, <Realm>, <Resource>, <ResourceParams> 

Connector元素 
由Connector接口定义.<Connector>元素代表与客户程序实际交互的给件,它负责接收客户请求,以及向客户返回响应结果.

<Connector port="8080" maxThread="50" minSpareThreads="25" maxSpareThread="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" />

<Connection port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />
第一个Connector元素定义了一个HTTP Connector,它通过8080端口接收HTTP请求;第二个Connector元素定义了一个JD Connector,它通过8009端口接收由其它服务器转发过来的请求.

Connector元素共用属性 
1> className指定实现Connector接口的类
2> enableLookups如果设为true,表示支持域名解析,可以把IP地址解析为主机名.WEB应用中调用request.getRemoteHost方法返回客户机主机名.默认值为true
3> redirectPort指定转发端口.如果当前端口只支持non-SSL请求,在需要安全通信的场命,将把客户请求转发至SSL的redirectPort端口

HttpConnector元素的属性 
1> className实现Connector的类
2> port设定Tcp/IP端口,默认值为8080,如果把8080改成80,则只要输入http://localhost 即可
因为TCP/IP的默认端口是80
3> address如果服务器有二个以上ip地址,此属性可以设定端口监听的ip地址.默认情况下,端口会监听服务器上所有的ip地址
4> bufferSize设定由端口创建的输入流的缓存大小.默认值为2048byte
5> protocol设定Http协议,默认值为HTTP/1.1
6> maxThreads设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200
7> acceptCount设定在监听端口队列的最大客户请求数量,默认值为10.如果队列已满,客户必须等待.
8> connectionTimeout定义建立客户连接超时的时间.如果为-1,表示不限制建立客户连接的时间

JkConnector的属性 
1> className实现Connector的类
2> port设定AJP端口号
3> protocol必须设定为AJP/1.3

 

六、URL管理 
    1、用户配置 
      在进行具体Tomcat管理之前,先给tomcat添加一个用户,使这个用户有权限来进行管理。 
      
打开conf目录下的tomcat-users.xml文件,在相应的位置添加下面一行:
 
    <user name="user" password="user" roles="standard,manager"/> 
    
然后重起tomcat,在浏览器中输入http://localhost:8080/manager/,会弹出对话框,输入上面的用户
名和密码即可。 

    2、应用程序列表 
      在浏览器中输入http://localhost:8080/manager/list,浏览器将会显示如下的信息: 
    OK - Listed applications for virtual host localhost 
    /ex:running:1 
    /examples:running:1 
    /webdav:running:0 
    /tomcat-docs:running:0 
    /manager:running:0 
    /:running:0 
     
上面显示的信息分别为:应用程序的路径、当前状态、连接这个程序的session


   3、重新装载应用程序 
     在浏览器中输入 http://localhost:8080/manager/reload?path=/examples,浏览器显示如下: 
    OK - Reloaded application at context path /examples    

  这表示example应用程序装载成功,如果我们将server.xmlContext元素的reloadable属性设为true,则没必要利用这种方式重新装载应用程序,因为tomcat会自动装载。

 

4、显示session信息 
    在浏览器中输入http://localhost:8080/manager/sessions?path=/examples,浏览器显示如下: 
    OK - Session information for application at context path /examples Default maximum session inactive  

     interval 30 minutes 

5、启动和关闭应用程序 
   在浏览器中输入http://localhost:8080/manager/start?path=/examples

http://localhost:8080/manager/stop?path=/examples分别启动和关闭examples应用程序。

6、开启tomcat的监控

1)、tomcat6的配置

修改tomcat/conftomcat-users.xml文件中</tomcat-users>节点之前添加如下代码即可。

<user name="user" password="user" roles="manager"/> 

2)tomcat7的配置

修改tomcat/conftomcat-users.xml文件中</tomcat-users>节点之前添加如下代码即可。

<role rolename="manager-gui"/>

<user username="user" password="user" roles="manager-gui"/> 

 

然后输入然后访问http://serverip:8080/manager/status即可访问。

20151228100110706.png (1122×679)

 

 

 

posted on 2016-10-10 15:20 yuanbangchen 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/Yuanbangchen/p/5945961.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值