您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > Tomcat部署和系统集群讲解
XXX培训分享者:XXXX2018年12月08日物联网政务外网专线内网3Tomcat项目发布方式Tomcat合理配置参数Oracle性能优化负载均衡的介绍主要内容Tomcat项目发布方式-静态部署一、静态部署1、直接将web项目文件件拷贝到webapps目录中Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成一个war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse等。也可以用cmd命令:jar-cvfmywar.warmywebwebapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的server.xml文件,找到下面内容:Hostname=localhostappBase=webappsunpackWARs=trueautoDeploy=truexmlValidation=falsexmlNamespaceAware=false将appBase修改即可。2、在server.xml中指定在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在server.xml中新建Context里部署一个JSP应用程序。打开server.xml文件,在Host标签内建一个Context,内容如下。在tomcat中的conf目录中,在server.xml中的,host/节点中添加:Contextpath=/hellodocBase=D:\workspace\hello\WebRootdebug=0privileged=true/Context或者Contextpath=/myappreloadable=truedocBase=D:\myappworkDir=D:\myapp\work/或者Contextpath=/sms4docBase=D:\workspace\sms4\WebRoot/说明:path是虚拟路径;docBase是应用程序的物理路径;workDir是这个应用的工作目录,存放运行时生成的与这个应用相关的文件;debug则是设定debuglevel,0表示提供最少的信息,9表示提供最多的信息privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servletreloadable如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序,实现热部署antiResourceLocking和antiJARLocking热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。设置为true,Tomcat在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。3、创建一个Context文件在conf目录中,新建Catalina\localhost目录,在该目录中新建一个xml文件,名字不可以随意取,要和path后的那个名字一致,按照下边这个path的配置,xml的名字应该就应该是hello(hello.xml),该xml文件的内容为:Contextpath=/hellodocBase=E:\workspace\hello\WebRootdebug=0privileged=true/Contexttomcat自带例子如下:ContextdocBase=${catalina.home}/server/webapps/host-managerprivileged=trueantiResourceLocking=falseantiJARLocking=false/Context这个例子是tomcat自带的,编辑的内容实际上和第二种方式是一样的,其中这xml文件名字就是访问路径,这样可以隐藏应用的真实名字。4、注意:删除一个Web应用同时也要删除webapps下相应的文件夹和server.xml中相应的Context,还要将Tomcat的conf\catalina\localhost目录下相应的xml文件删除,否则Tomcat仍会去配置并加载。。。二动态部署登陆tomcat管理控制台:,输入用户名和密码后便可管理应用并动态发布。在ContextPath(option):中输入/yourwebname,这代表你的应用的访问地址。XMLConfigrationfileURL中要指定一个xml文件,比如我们在F:\下建立一个hmcx.xml文件,内容如下:Contextreloadable=false/其中docBase不用写了,因为在下一个文本框中填入。或者更简单点,这个文本框什么都不填,在WARorDirectoryURL:中键入F:\hmcx即可,然后点击Deploy按钮,上面就可以看到了web应用程序,名字就ContextPath(option):中的名字。如果部署.war文件还有更加简单的方式,下面还有个SelectWARfileuploae点击浏览选择.war文件,然后点击Deploy也可以。Tomcat项目发布方式-静态部署3、创建一个Context文件在conf目录中,新建Catalina\localhost目录,在该目录中新建一个xml文件,名字不可以随意取,要和path后的那个名字一致,按照下边这个path的配置,xml的名字应该就应该是hello(hello.xml),该xml文件的内容为:Contextpath=/hellodocBase=E:\workspace\hello\WebRootdebug=0privileged=true/Contexttomcat自带例子如下:ContextdocBase=${catalina.home}/server/webapps/host-managerprivileged=trueantiResourceLocking=falseantiJARLocking=false/Context这个例子是tomcat自带的,编辑的内容实际上和第二种方式是一样的,其中这xml文件名字就是访问路径,这样可以隐藏应用的真实名字。Tomcat项目发布方式-静态部署Tomcat项目发布方式-静态部署注意事项:删除一个Web应用同时也要删除webapps下相应的文件夹和server.xml中相应的Context,还要将Tomcat的conf\catalina\localhost目录下相应的xml文件删除,否则Tomcat仍会去配置并加载!二动态部署登陆tomcat管理控制台:,输入用户名和密码后便可管理应用并动态发布。在ContextPath(option):中输入/yourwebname,这代表你的应用的访问地址。XMLConfigrationfileURL中要指定一个xml文件,比如我们在F:\下建立一个hmcx.xml文件,内容如下:Contextreloadable=false/其中docBase不用写了,因为在下一个文本框中填入。或者更简单点,这个文本框什么都不填,在WARorDirectoryURL:中键入F:\hmcx即可,然后点击Deploy按钮,上面就可以看到了web应用程序,名字就ContextPath(option):中的名字。如果部署.war文件还有更加简单的方式,下面还有个SelectWARfileuploae点击浏览选择.war文件,然后点击Deploy也可以。Tomcat项目发布方式-动态部署Tomcat合理配置优化参数-内存优化优化内存,主要是在bin/catalina.bat/sh配置文件中进行。Linux上,在catalina.sh中添加:JAVA_OPTS=-server-Xms1G-Xmx2G-Xss256K-Djava.awt.headless=true-Dfile.encoding=utf-8-XX:MaxPermSize=256m-XX:PermSize=128M-XX:MaxPermSize=256M“其中:•-server:启用jdk的server版本。•-Xms:虚拟机初始化时的最小堆内存。•-Xmx:虚拟机可使用的最大堆内存。#-Xms与-Xmx设成一样的值,避免JVM因为频繁的GC导致性能大起大落•-XX:PermSize:设置非堆内存初始值,默认是物理内存的1/64。•-XX:MaxNewSize:新生代占整个堆内存的最大值。•-XX:MaxPermSize:Perm(俗称方法区)占整个堆内存的最大值,也称内存最大永久保留区域。Tomcat合理配置优化参数-内存优化1)错误提示:Java.lang.OutOfMemoryError:Javaheapspace(⊙o⊙)…Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,有可能导致系统无法运行。常见的问题是报Tomcat内存溢出错误,OutofMemory(系统内存不足)的异常,从而导致客户端显示500错误,一般调整Tomcat的-Xms和-Xmx即可解决问题,通常将-Xms和-Xmx设置成一样,堆的最大值设置为物理可用内存的最大值的80%。setJAVA_OPTS=-Xms512m-Xmx512m2)错误提示:java.lang.OutOfMemoryError:PermGenspacePermGenspace的全称是PermanentGenerationspace,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGenspace中,它和存放类实例(Instance)的Heap区域不同,GC(GarbageCollection)不会在主程序运行期对PermGenspace进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGenspace错误,这种错误常见在web服务器对JSP进行precompile的时候。如果你的WEBAPP下都用了大量的第三方jar,其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。解决方法:setJAVA_OPTS=-XX:PermSize=128M3)在使用-Xms和-Xmx调整tomcat的堆大小时,还需要考虑垃圾回收机制。如果系统花费很多的时间收集垃圾,请减小堆大小。一次完全的垃圾收集应该不超过3-5秒。如果垃圾收集成为瓶颈,那么需要指定代的大小,检查垃圾收集的详细输出,研究垃圾收集参数对性能的影响。一般说来,你应该使用物理内存的80%作为堆大小。当增加处理器时,记得增加内存,因为分配可以并行进行,而垃圾收集不是并行的。Tomcat合理配置优化参数-连接数优化#优化连接数,主要是在conf/server.xml配置文件中进行修改。优化线程数找到Connectorport=8080protocol=HTTP/1.1,增加maxThreads和acceptCount属性(使acceptCount大于等于maxThreads),如下:Connectorport=8080protocol=HTTP/1.1connectionTimeout=20000redirectPort=8443acceptCount=500maxThreads=400/其中:•maxThreads:tomcat可用于请求处理的最大线程数,默认是200•minSpare
本文标题:Tomcat部署和系统集群讲解
链接地址:https://www.777doc.com/doc-3182549 .html