概述
Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些
特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。
由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器。但是,不能将 Tomcat 和
Apache HTTP 服务器混淆,Apache HTTP 服务器是一个用 C 语言实现的 HTTP Web 服务器;这两个 HTTP web
server 不是捆绑在一起的。Tomcat 包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。
Tomcat 重要目录
/bin - Tomcat 脚本存放目录(如启动、关闭脚本)。 .sh 文件用于 Unix 系统; .bat 文件用于 Windows 系
统。
/conf - Tomcat 配置文件目录。
/logs - Tomcat 默认日志目录。
/webapps - webapp 运行的目录
web 工程发布目录结构
一般 web 项目路径结构
下载安装JDK
处理流程:用户发送请求到web服务器,该请求会被正在监听的Connector连接器接收,并把该请求交给Service下
的Engine来处理,并等待Engine处理的结果。Engine获得请求后会根据请求的主机信息来匹配相应的Host主机,
Host主机会根据请求的路径匹配对应的Context,Context web应用匹配上之后就构建request、response请求对
象,调用指定的Servlet来处理请求。请求处理完成后会将response对象返回给Host主机,Host主机将response对
象返回给Engine引擎,Engine再将response对象返回给Connector链接器,最后Connector连接器将response返
回给浏览器。
参数说明:
appBase 指定站点根目录位置(可以是相对路径或绝对路径)
unpackWAR 本项为"true" 意味着 Tomcat 会保存 .war 包的解压结果,然后直接对解压结果进行运行。考虑到jvm
的类加载机制,每个类都仅加载一次,但是页面内容却没有类似的有效缓存,所以 .war 还是解压执行的比较好。
path 指定访问路径URI(虚拟目录名)
docBase 指定jsp项目的存放路径(可以是相对路径或绝对路径)
debug 设定debug的等级0提供最少的信息,9提供最多的信息
reloadable 本项为true时 当web.xml或者class有改动的时候都会自动重新加载不需要从新启动服务(所谓的支持热
发布功能)
crosscontext 本项为"true" 表示配置的不同context共享一个session
cachingAllowed 本项为"true"时 意味着开启了 Tomcat 的静态缓存功能。静态文件包括 JavaScript 程序、图片声
音等允许网络访问的文件以及 HTML 页面。
cacheMaxSize 指定静态缓存功能缓冲区大小的设定。单位是 MB ,也就是 1024KB 。例子中设为 1024 ,意味着
1GB 。
测试访问:1、配置本地解析;2、在浏览器中访问http://jspgou.1000phone.com:8080出现jspgou商场界面,访问
http://tomcat_server_ip:8080 出现默认tomcat主页
Tomcat Manager 管理页面
添加允许访问的主机
[[email protected] tomcat]$ vim webapps/manager/META-INF/context.xml
参数说明: -server:表示这是应用于服务器的配置,JVM 内部会有特殊处理的
-Xmx1024m:设置JVM最大堆可用内存为1024MB
-Xms1024m:设置JVM最小内堆存为1024m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分
配内存。
-XX:NewSize:设置年轻代大小
-XX:MaxNewSize:设置最大的年轻代大小
-XX:PermSize:设置永久代大小
-XX:MaxPermSize:设置最大永久代大小
-XX:NewRatio=4:设置年轻代(包括 Eden 和两个 Survivor 区)与终身代的比值(除去永久代)。设置为 4,则年
轻代与终身代所占比值为 1:4,年轻代占整个堆栈的 1/5
-XX:MaxTenuringThreshold=10:设置垃圾最大年龄,默认为:15。如果设置为 0 的话,则年轻代对象不经过
Survivor 区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻
代对象会在 Survivor 区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。
-XX:+DisableExplicitGC:这个将会忽略手动调用 GC 的代码使得 System.gc() 的调用就会变成一个空调用,完全不
会触发任何 GC
Tomcat Connector有三种运行模式:
bio:阻塞IO bio是三种运行模式中性能最低第一种。
nio:是一个基于缓冲区,并能提供非阻塞I/O操作的JAVA API 因此NIO也成为非阻塞I/O,比bio拥有更好的并发性
能。
apr:调用httpd核心链接库来读取或文件传输,从而提高tomat对静态文件的处理性能。Tomcat APR模式也是
Tomcat在高并发下的首选运行模式
Tomcat的排错
时刻关注tomcat/logs/ 中的各log内容
Nginx 代理
方法一(nginx rewrite)
Tomcat的排错
时刻关注tomcat/logs/ 中的各log内容
Nginx 代理
方法一(nginx rewrite)
原文地址:http://blog.51cto.com/13575680/2104258