2021-02-28 分类: 网站建设
1. WebLogic:是BEA公司的产品
2. WebSphereAS:是IBM公司的产品
3. JBossAS:红帽公司的产品
4. Tomcat服务器:
Sun公司推出的小型Servlet/JSP调试工具的基础上发展起来的一个Servlet容器,Tomcat本身完全用java语言编写,所以tomcat的运行需要java的支持,所以要先安装JDK,才能运行。
1. Tomcat的目录层次结构
a) bin:存放启动和关闭Tomcat的脚本文件
b) conf: 存放Tomcat服务器的各种配置文件
c) lib:存放tomcat服务器支撑的jar包
d) logs:存放Tomcat的日志文件
e) temp: 存放Tomcat运行时产生的临时文件
f) webapps:web应用虽在目录,即供外界访问的web资源的存放目录
g) work:Tomcat的工作目录
2. JavaWeb应用的组成结构
mail---------------------------Web应用所在目录
|----html、jsp、css、js等文件,根目录下的文件外界可以直接访问
|----WEB-INF目录
|---------classes目录(java类)
|---------lib目录(java类运行所需的jar包)
|---------web.xml(web应用的配置文件)
WEB-INF 这个目录下的文件外界无法直接访问,由web服务器负责调用
3. JavaWeb应用的发布
开放式目录方式:打包war方式: 使用 Jar -cvf *.war .
4. Tomcat的组成结构
Tomcat本身由一系列可配置的组件构成,其中核心组件是Servlet容器组件,它是所有其他Tomcat组件的顶层容器。每个组件都可以在Tomcat安装目录/conf/server.xml文件中进行配置,每个Tomcat组件在server.xml文件中对应一种配置元素。下面用XML的形式展示各种Tomcat组件之间的关系。
5. Tomcat体系结构
6. 虚拟目录的映射方式
从Tomcat6开始,Tomcat支持自动映射,即tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚拟目录,换句话说,只需把web应用放在webapps目录下,不需要配置Context,外界可以直接访问
但是如果你不想项目放在webapps下,而是放在其他地方,还是需要配置Context,比如我的tomcat在C盘,我的项目在D盘,则需要在Host下增加如下虚拟目录映射语句
7. Context元素配置
tomcat在加载一个web应用时,会一次按照以下五种方式查找web应用中的元素,优先级一次降低,直到找到为止
1):到Tomcat安装目录/conf/Context.xml文件中查找元素。
2):到Tomcat安装目录/conf/[enginename]/[hostname]/context.xml.default文件中查找元素。
[enginename]:表示的name属性
[hostname]:表示属性
3):到Tomcat安装目录/conf/[enginename]/[hostname]/[contextpath].xml文件中查找元素
[contextpath]:表示单个Web应用的URL入口
4):到Web应用的META-INF/context.xml文件中查找元素
5):到Tomcat安装目录/conf/server.xml文件中查找元素。只适用于单个Web应用
8. 将项目部署为Tomcat默认应用
即访问 http://localhost:8080 时出来的是tomcat自带的欢迎页面,改为登录到自己的项目主页
9. Context元素的属性
path: 指定访问该Web应用的URL入口
docBase: 指定Web应用的文件路径,可以写绝对路径,也可以写相对于appBase属性的相对路径
className:指定实现Context组件的Java类的名字,这个类必须实现 org.apache.catalina.Contex接口,该属性默认值为org.apache.catalina.core.StandardContext(不建议大家改动)
reloadable:如果为true,Tomcat服务器在运行状态下回监视在WEB-INF/classes和WEB-INF/lib目录下的class文件的改动,以及监视Web应用的WEB-INF/web.xml文件的改动,如果检测到有更新,服务器会自动更新加载web应用。其默认值为false。在开发和调试阶段,将其改为true,一般像Eclipse等开发环境都会默认改为true。在正式发布阶段,应将其该为false,可以降低Tomcat的运行负荷,提高Tomcat的运行性能
在一般情况下,元素都会使用默认的标准Context组件,即className属性采用默认值org.apache.catalina.core.StandardContext,它除了拥有上面介绍到的属性外,还有自身专有的属性:
cachingAllowed:是否允许启用静态资源(HTML、图片、声音等)的缓存。默认值为true。
cacheMaxSize:设置静态资源缓存的大值,单位为K。
workDir:指定Web应用的工作目录。
uppackWAR:如果为true,会把war文件展开为开放目录后再运行。为false,直接运行war文件。默认值为true。
10. web.xml文件
该文件必须放在/WEB-INF目录下,但是从7.0版本开始,Tomcat可以不使用web.xml文件,而是使用注解方式。
1、内存使用配置
Tomcat是依赖于JVM的,所以Tomcat的使用内存配置实质上是JVM的内存配置
在/bin目录下的catalina.bat可以直接通过Tomcat设置JVM内存参数,windows下
打开catalina.bat文件,在大概中间的位置,找到
set "JAVA_OPTS=%JAVA_OPT% -server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -Djava.awt.headless=true"
通过内存设置充分利用服务器内存
-server: 模式启动应用慢,但是极大程度提高运行性能
-Xms2048m -Xmx2048m: 设置的是堆内存
java8开始,PermSize被MetaspaceSize代替,MetaspaceSize共享heap,不会再有java.lang.OutOfMemoryError:PermGen space,可以不设置
Headless=true: 适用于Linux系统,与图形操作有关,如生成验证码含义是当前的是无显示器的服务器,应用中如果获取系统显示有关的参数会抛出异常,windows系统可不用设置
可通过jmap -heap process_id查看设置是否成功
2、大连接数配置(并发能力)
在/conf/server.xml里进行配置
在属性中
将protocol属性改为
"org.apache.coyote.http11.Http11NioProtocol",NIO模型的效率更高
加入
maxThreads="500" //当前可以同时处理的大用户访问数
minSpareThreads="100" //最小空闲线程连接数,用于优化线程池
maxSpareThreads="200"
acceptCount="200" //当所有的线程以分配,仍然允许连接进来,但是出于等待状态的用户数。等待线程数+工作线程数=总的可大连接数,如果超过此数,新的连接将不会被接受,就会产生一个http错误
enableLookups="false"//是否允许DNS反查,如果为true,request.getRemoteHost会执行DNS查找,反向解析ip对应域名或主机名,当没有这样需要的时候,可以将这个功能关闭,在一定程度上提高了Tomcat服务器的性能
负载均衡是提高应用负载量和容错的有效手段,可以结合Nginxs与Tomcat实现,Nginx是一款性能优异的反向代理服务器
1、负载均衡配置实现
反向代理原理示意图
负载均衡示意图
负载均衡策略:
Nginx 提供轮询(round robin)、用户IP哈希(client IP)和指定权重 3 种方式
2、负载均衡时Session的处理策略
Session是Tomcat服务器上的内存空间,如果一个用户发出多个请求,却发到了多个tomcat服务器中,那么就会出现Session不同步的问题
memcached缓存共享方案基本原理
粘性Session与非粘性Session方式:
需要一些工具jar包,官网有目录和下载连接
在/conf/context.xml中进行配置,全局有效
3、集群环境中应用代码应注意的问题
一般高并发的网站上,资源类的文件,如js,css,图片通常是由静态服务器处理,Nginx处理静态文件效率就非常高,而tomcat处理静态文件是它很大的一个弱势,tomcat只负责动态请求的处理。那么编码的时候就要考虑静态资源最后可能要被拿出去,地址会有变化,所以在开发的时候应该规划访问地址,保持大灵活性。
本文题目:Tomcat服务器常用配置详解
文章分享:https://www.cdcxhl.com/news/103510.html
成都网站建设公司_创新互联,为您提供用户体验、电子商务、网站设计公司、网站收录、外贸建站、全网营销推广
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联
猜你还喜欢下面的内容