LOCKLOSE 发表于 2018-12-3 09:38:58

Tomcat服务安装配置

  tomcatapache.org
https://s4.运维网.com/oss/201711/22/a55464626c1869e98bdf526933b227d3.png
  一个tomcat的server里都有一个service,service里有Englne引擎,引擎里有多个主机host,主机里可以有多个Context,而每个里面都可以定义日志 访问密码 等。
  

  其中相关属性定义有:
  1) className:相关的java实现的类名,相应于分别应该为org.apache.catalina.valves.RemoteHostValve或org.apache.catalina.valves.RemoteAddrValve;
  2) allow:以逗号分开的允许访问的IP地址列表,支持正则表达式,因此,点号“.”用于IP地址时需要转义;仅定义allow项时,非明确allow的地址均被deny;
  3) deny: 以逗号分开的禁止访问的IP地址列表,支持正则表达式;使用方式同allow;
  

  9、GlobalNamingResources
  应用于整个服务器的JNDI映射,此可以避免每个Web应用程序都需要在各自的web.xml创建,这在web应用程序以WAR的形式存在时尤为有用。它通常可以包含三个子元素:
  1) Environment;
  2) Resource;
  3) ResourceEnvRef;
  

  

  10、WatchedResource
  WatchedResource可以用于Context中监视指定的webapp程序文件的改变,并且能够在监视到文件内容发生改变时重新装载此文件。
  

  11、Listener
  Listener用于创建和配置LifecycleListener对象,而LifecycleListener通常被开发人员用来创建和删除容器。
  

  11、Loader
  Java的动态装载功能是其语言功能强大表现之一,Servlet容器使用此功能在运行时动态装载servlet和它们所依赖的类。Loader可以用于Context中控制java类的加载。
  

  12、Manager
  Manger对象用于实现HTTP会话管理的功能,Tomcat6中有5种Manger的实现:
  1) StandardManager
  Tomcat6的默认会话管理器,用于非集群环境中对单个处于运行状态的Tomcat实例会话进行管理。当Tomcat关闭时,这些会话相关的数据会被写入磁盘上的一个名叫SESSION.ser的文件,并在Tomcat下次启动时读取此文件。
  2) PersistentManager
  当一个会话长时间处于空闲状态时会被写入到swap会话对象,这对于内存资源比较吃紧的应用环境来说比较有用。
  3)DeltaManager
  用于Tomcat集群的会话管理器,它通过将改变了会话数据同步给集群中的其它节点实现会话复制。这种实现会将所有会话的改变同步给集群中的每一个节点,也是在集群环境中用得最多的一种实现方式。
  4) BackupManager
  用于Tomcat集群的会话管理器,与DeltaManager不同的是,某节点会话的改变只会同步给集群中的另一个而非所有节点。
  5)SimpleTcpReplicationManager
  Tomcat4时用到的版本,过于老旧了。
  

  13、Stores
  PersistentManager必须包含一个Store元素以指定将会话数据存储至何处。这通常有两种实现方式:FileStore和JDBCStore。
  

  14、Resources
  经常用于实现在Context中指定需要装载的但不在Tomcat本地磁盘上的应用资源,如Java类,HTML页面,JSP文件等。
  

  15、Cluster
  专用于配置Tomcat集群的元素,可用于Engine和Host容器中。在用于Engine容器中时,Engine中的所有Host均支持集群功能。在Cluster元素中,需要直接定义一个Manager元素,这个Manager元素有一个其值为org.apache.catalina.ha.session.DeltaManager或org.apache.catalina.ha.session.BackupManager的className属性。同时,Cluster中还需要分别定义一个Channel和ClusterListener元素。
  

  15.1、Channel
  用于Cluster中给集群中同一组中的节点定义通信“信道”。Channel中需要至少定义Membership、Receiver和Sender三个元素,此外还有一个可选元素Interceptor。
  

  15.2、Membership
  用于Channel中配置同一通信信道上节点集群组中的成员情况,即监控加入当前集群组中的节点并在各节点间传递心跳信息,而且可以在接收不到某成员的心跳信息时将其从集群节点中移除。Tomcat6中Membership的实现是org.apache.catalina.tribes.membership.McastService。
  

  15.3、Sender
  用于Channel中配置“复制信息”的发送器,实现发送需要同步给其它节点的数据至集群中的其它节点。发送器不需要属性的定义,但可以在其内部定义一个Transport元素。
  

  15.4 Transport
  用于Sender内部,配置数据如何发送至集群中的其它节点。Tomcat6有两种Transport的实现:
  1) PooledMultiSender
  基于Java阻塞式IO,可以将一次将多个信息并发发送至其它节点,但一次只能传送给一个节点。
  2)PooledParallelSener
  基于Java非阻塞式IO,即NIO,可以一次发送多个信息至一个或多个节点。
  

  15.5 Receiver
  用于Channel定义某节点如何从其它节点的Sender接收复制数据,Tomcat6中实现的接收方式有两种BioReceiver和NioReceiver。
  

  安装:
  #tar xf apache-tomacat-7.0.33.tar.gz
  #cd /usr/local/
  #ln -sv apache-tomacat-7.0.33 tomacat
  #cd tomacat
  

  在servrt.xml里
  Server port="8005" shutdown="SHUTDOWN"定义telnet登录进行管理的端口8005
  

  pathname="conf/tomcat-users.xml"定义访问控制
  

   定义一个service

  
  

  

  启动tomcat
  #vim /etc/profile.d/tomcat.sh
  export CATALINE_HOME=/usr/local/tomcat
  export PATH=$PATH:$CATALINE_HOME/bin
  #./etc/profile.d/tomcat.sh
  #ls bin/ 会有version.sh和catalina.sh等
  #catalina.sh version 传递一个version参数给catalina脚本
  #catalina.sh start启动

  #netstat -tnlp 查看8080和8009端口是否在监听状态

  

  

  #ls logs里
  catalina.$TIME代表catalina自身启动的日志信息
  catalina。out当前正在使用的文件
  host-manager为host-manager提供的日志
  manager.$TIME为manager提供的日志文件
  localhost.$TIME默认主机的日志文件
  localhostaccess_log.$TIME主机的访问日志
  temp临时文件目录
  webapps 目录文件
  

  启动脚本:
  vim /etc/rc.d/init.d/tomcat.sh

  #!/bin/sh
  # Tomcat init script for Linux.
  #
  # chkconfig: 2345 96 14
  # description: The Apache Tomcat servlet/JSP container.
  JAVA_HOME=/usr/java/latest
  CATALINA_HOME=/usr/local/tomcat
  export JAVA_HOME CATALINA_HOME
  exec $CATALINA_HOME/bin/catalina.sh $*
  

  #chomd +x /etc/rc.d/init.d/tomcat
  #chkconfig --add tomcat
  

  语法测试,在tomcat停止后测试
  #service tomcat configtest
  




页: [1]
查看完整版本: Tomcat服务安装配置