详解CentOS6.7部署Tomcat及主配置文件

Java程序实现部署及应用 html

POSIX :可移植操做系统,编程操做系统接口规范,实现跨平台编译运行。 前端

API:应用程序编程接口 java

ABI:应用程序二进制接口 描述了应用程序和操做系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口. web

JAVA:包含四个独立又彼此相关的技术 shell

Java设计语言 数据库

JavaAPI :Java应用程序编程接口 apache

Java class 文件格式,须要运行在Java虚拟机中 编程

jvm :Java虚拟机 vim

JAVA流程 windows

 

一、JavaAPI和程序设计语言开发出源程序

二、Java源程序文件,一般以.java结尾

三、使用Java编译器来编译Java源程序文件

四、编译完成以后保存为类文件,以.class结尾

五、这些类文件必须找一个Java虚拟机才能跑起来

六、这些类文件在Java虚拟机上还须要类库才能跑起来!

七、公共类须要用 class loader 才能加载!

 

JVM实现方式:

一、一次性解释器:解释的是字节码并执行,解释的过程是将字节码转换成二进制的过程。

二、即时编译器:每个class类在运行的时候,解释完的内容要缓存下来,第二次执行时,去缓存中取。依赖于更多内存缓存解码后的结果。

三、自适应编译器:自动缓存20%的执行频率比较高的代码,提升80%的速度。

 

JDK :Java开发环境+运行,是实现Java开发的最小环境

Java应用领域的不一样分为三类:

Java SE :Java标准版,

Java EE :Java企业版

Java ME :Java移动版

 

CGI(协议) :通用网关接口,将处理后的动态界面格式化成HTML格式显示给用户。

 

Servlet(Server Applet),全称Java Servlet,是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,

JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,

它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)JSP标记(tag),从而造成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其余操做系统上运行。

.jsp ---> .java --->(JVM).class

jasper 帮助.jsp转换成.javaJava编译器帮助.java转换成.classJVM帮助.class转换成程序文件。

JDK :提供了javac,可以帮助.java转换成.class

 

servlet容器:包含了JDK,又包含了JDK不具有的额外的组件

基于servlet容器的工做流程:

一、前端有一个web应用程序,负责接收用户请求,一旦发现用户请求的是CGI的内容,

二、servlet程序负责经过CGI协议跟web程序进行交互

三、请求的内容接收进来以后,在JVM上完成程序的执行

servlet容器负责接收CGI传递过来的请求,负责监控本地的.Java程序是否发生了修改,若修改,负责把它转换成.class格式。(包含JDK)

web容器:包含了servlet与JSP框架的程序

链接器:真正想跟用户请求的http请求交互,前端还要依赖于web服务器,链接器能够实现就算没有web服务器解码http请求,封装http响应,也能够直接完成与用户交互,

 

如果直接面向大量用户请求,链接器压力会变的很大,若前端给他放一个web服务器,web服务器再带有缓存功能,那后端的链接器压力会小不少,这种模式称为Java的web容器,或者应用程序服务器

 

安装JDK

一、默认安装在/usr/java/目录下,

二、使用rpm方式安装Java

三、在/etc/profile.d/建立java.sh,内容为:

export JAVA_HOME=/usr/local/jdk1.6.0_45

export PATH=$PATH:$JAVA_HOME/bin

四、执行一下文件:. /etc/profile.d/java.sh

五、使用命令查看Java版本号:java -version

 

Java配置参数方法:

-XX:+选项 :开启 此参数指定的功能

-XX:-选项 :关闭功能

         -XX:选项=值 :给指定的选项赋值

java -XX:+PrintFlagsFinal :显示Java所有选项及其参数

 

Tomcat详解

tomcat架构详解

整个Tomcat容器架构从外向内一共5

Tomcat在本身内部开发了一个使用Java语言开发了一个web服务器。

Tomcat自身内部就有一个web服务器,而这个web服务器自己运行起来之后,彻底能够直接工做在前台,让用户对本机发起web请求。

 

第一层是Tomcat服务器(server):每个server就是一个Tomcat实例,意味着启动一个Tomcat就是启动一个serve

能够直接响应解析http请求

第二层是Tomcat 服务(service):将一个或多个链接器关联至一个引擎,

链接器(Connector):贯穿第一层到第三层,用于将server和引擎创建起来关联关系,将server收到的请求转发给某一个引擎的组件。有多个!

第三层是Tomcat 引擎:就是一个具备servlet 容器的Java虚拟机,也是具有了web容器功能的容器,解码.java

第四层是Tomcat 主机:能够有多个,用来在引擎内部实现虚拟主机

第五层是上下文 :定义相似于Apache的路径别名,配置一个Context最主要的是指定Web应用程序的根目录,以便Servlet容器可以将用户请求发往正确的位置。

 

容器类组件

Engine(引擎)

Host (主机)

Context(上下文)

顶级组件

server (服务器)

service (服务)

其他组件

Realm(领域):用户帐户数据库,

Valve (阀门):实现用户的认证

Logger:日志记录器

 

经常使用组件

一、Loader(类加载器)

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

二、Manager

Manger对象用于实现HTTP会话管理的功能,Tomcat6中有5Manger的实现:

1) StandardManager(标准管理器)

Tomcat6的默认会话管理器,用于非集群环境中对单个处于运行状态的Tomcat实例会话进行管理。当Tomcat关闭时,这些会话相关的数据会被写入磁盘上的一个名叫SESSION.ser的文件,并在Tomcat下次启动时读取此文件。

2) PersistentManager(持久会话管理器)

当一个会话长时间处于空闲状态时会被写入到swap会话对象,这对于内存资源比较吃紧的应用环境来讲比较有用。

3)DeltaManager

用于Tomcat集群的会话管理器,它经过将改变了会话数据同步给集群中的其它节点实现会话复制。这种实现会将全部会话的改变同步给集群中的每个节点,也是在集群环境中用得最多的一种实现方式。

4) BackupManager

用于Tomcat集群的会话管理器,与DeltaManager不一样的是,某节点会话的改变只会同步给集群中的另外一个,而非全部节点。

5)SimpleTcpReplicationManager

Tomcat4时用到的版本,过于老旧了。

三、Stores(存储)

持久管理器必须包含一个Store元素以指定将会话数据存储至何处。这一般有两种实现方式:FileStore(文件存储)JDBCStore(数据库存储)

四、Resources

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

五、Cluster

专用于配置Tomcat集群的元素,可用于EngineHost容器中。在用于Engine容器中时,Engine中的全部Host均支持集群功能。在Cluster元素中,须要直接定义一个Manager元素,这个Manager元素有一个其值为org.apache.catalina.ha.session.DeltaManagerorg.apache.catalina.ha.session.BackupManagerclassName属性。同时,Cluster中还须要分别定义一个ChannelClusterListener元素。

5.一、Channel(通告)

用于Cluster中给集群中同一组中的节点定义通讯"信道"。Channel中须要至少定义MembershipReceiverSender三个元素,此外还有一个可选元素Interceptor

5.二、Membership(成员关系管理)

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

5.三、Sender(心跳发送)

用于Channel中配置"复制信息"的发送器,实现发送须要同步给其它节点的数据至集群中的其它节点。发送器不须要属性的定义,但能够在其内部定义一个Transport元素。

5.4 Transport(发送集群事务信息)

用于Sender内部,配置数据如何发送至集群中的其它节点。Tomcat6有两种Transport的实现:

1) PooledMultiSender

基于Java阻塞式IO,能够将一次将多个信息并发发送至其它节点,但一次只能传送给一个节点。

2)PooledParallelSener

基于Java非阻塞式IO,即NIO,能够一次发送多个信息至一个或多个节点。

5.5 Receiver(接受集群事务信息)

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

 

Tomcat的主配置文件(server.xml)及其各组件之间的关系

<server>

<service>

<Connector />

<Engine>

<Host>

<Context> </Context>

</Host>

</Engine>

</service>

</server>

安装Tomcat以前须要先安装JDK,由于要依赖于开发环境!

 

Tomcat的安装配置

一、解压包:tar xf apache-tomcat-7.0.69.tar.gz -C /usr/local/

二、包名太长,进行软链接:ln -sv apache-tomcat-7.0.69 tomcat

三、目录结构

bin :二进制程序路径,里面有 .jar文件(Java归档压缩包)shell脚本,还有 .bat(windows的批处理脚本)

conf :配置文件

server.xml:主配置文件

tomcat-users.xml:用户认证

web.xml:默认的应用程序部署描述符 (部署:将一个web应用程序所依赖到的类装载进JVM)

context.xml :默认为上下文所提供的配置文件

logging.properties :定义日志属性

catalina.properties :定义应用程序自己属性

catalina.policy :定义Tomecat自身安全策略,资源受权

lib :类库文件

logs :日志文件

temp :临时文件目录

webapps :应用程序目录,每个程序文件夹中都有一个WEB-INF,这是程序的私有目录。

work :工做目录,

四、启动Tomcat

4.一、输出一个变量:vim /etc/profile.d/tomcat.sh ,内容为:

export CATALINA_HOME=/usr/local/tomcat

export PATH=$PATH:$CATALINA_HOME/bin

4.二、 启动 catalina.sh start ,而后查看端口:netstat -lnpt中的8080、8009

五、访问网页: 格式为(IP地址:8080

五、使用service启动Tomcatvim /etc/rc.d/init.d/tomcat

脚本:

#!/bin/sh

# Tomcat init script for Linux.

#

# chkconfig: 2345 96 14

# description: The Apache Tomcat servlet/JSP container.

JAVA_HOME=/usr/java/jdk1.7.0_67

CATALINA_HOME=/usr/local/tomcat

export JAVA_HOME CATALINA_HOME

exec $CATALINA_HOME/bin/catalina.sh $*

 

Tomcat优化

Tomcat的优化分红两块:

Tomcat启动命令行中的优化参数即JVM优化(catalina.sh)

ü 系统响应时间增快

ü JVM回收速度增快同时又不影响系统的响应率

ü JVM内存最大化利用

ü 线程阻塞状况最小化

 

Tomcat容器自身参数的优化(server.xml

相关文章
相关标签/搜索