Tomcat学习笔记2
3.在Tomcat上部署Servlet和JSP web应用程序Tomcat的配置文件总是称web应用程序为context,Tomcat的主配置文件server.xml中有一个叫Context的XML元素,代表了web应用程序的配置。对每个显式配置的web应用程序,server.xml或分开的context XML片段,应有一个context元素。
为了在Tomcat中部署应用程序,必须在Host主机下部署。
常见的server.xml中有一个默认主机名localhost,该Host是默认的Host,也是唯一的Host。意味着进入Tomcat的HTTP请求都将映射到该主机上。
如要将应用程序部署到A.com主目录下,必须给A.com配置好Tomcat。仅需编辑server.xml。并查找到第一个定义<Host >XML元素,然后在它上面追加新的<Host>即可。
<Host name=”A.com” appBase=”webapps” unpackWARs=”true” autoDeply=”true” xmlValidation=”false” xmlNamespaceAware=”false”>
</Host>
<Host name=”localhost” appBase=”webapps” unpackWARs=”true” autoDeply=”true” xmlValidation=”false” xmlNamespaceAware=”false”>
</Host>
若服务器请求A.com,还应改变<Engin>的默认主机名。在server.xml中:
<Engin name=”catalina” defaultHost=” A.com”>
Tomcat在运行时,支持无需重启而部署应用程序,也可解除对应用程序的部署:热部署。Hot Deployement
只需将host中的autoDeploy=true即可。为此,一般无需在启动时部署应用程序,此时将deployStartup=false,否则应用程序启动2次。
若采用编辑server.xml形式,则需重启Tomcat才会生效。
将Web应用程序部署在Tomcat可以采用2种形式:解包目录和War(Web application aRchive,应用程序归档文件)包。解包目录webappa的优点是类、XML、JSP都是单个文件,很容易判断哪个文件出错。
Tomcat固定了Web应用程序的布局,即War的文件格式和布局:
根目录下有index.jsp+WEB-INF,WEB-INF下有lib、classes、web.xml。其中lib用于存放Jar包,classes存放Java class文件,web.xml是部署描述文件,包含web应用程序的配置信息,该文件提供给servlet-mapping,设定servlet对应的URI。
Context部署
<Host name=”A.com” appBase=”webapps” unpackWARs=”true” autoDeply=”false” xmlValidation=”false” xmlNamespaceAware=”false”>
<Context docBase=”my-webapp” path=”/my-webapp”>
</Host>
Tomcat启动后,会在my-webapp”路径下查找web应用程序对应的目录,并部署到URI为/my-webapp的路径下。
然后可以采用http://locaohost:8080/my-webapp访问。
生成WAR文件的命令:jar –cvf X.war 打包目录,如.
在Java和Tomcat社区,Ant是自动部署的标准工具。
Ant自动运行其他程序,可以执行非Java程序。
Ant由Java编写,有可靠的JVM,执行其他的Java功能也会灰常迅速。
Ant会读入XML格式的构建(build.xml)文件,以寻找要执行的命令。build.xml包含一个项目的定义,及很多的target(类似于子程序),其中一个是默认的目标。
在Ant上可以用名字执行任何目标,默认执行run.
4.Tomcat性能调校
Web负载测试工具:apache Benchmark 、siege(命令行工具)、apache Jakarta、JMeter(图形界面)。
基于命令行的调校工具是ab。
Ab调试工具接受单一的URL,重复的按照我们制定的多独立线程的方式加载它,并使用各种不同的命令行参数来控制访问的次数、最大的并发访问次数。可以定期打印进度报告,输出十分详细的报告。
Ab –k –n 100000 –c 149 URL
用最多149个并发线程,执行URL100000次。
默认150个并发线程。
-k 是keep live,保持与Tomcat保持联机
同样的需求,siege的命令行是:
Siege –b –r 671 –c 149 tomacathost:8080
671*149≈100000
同种情况下优先使用ab。
JMeter:
运行图形界面:bin/jmeter
安全防护的关键部分是加密处理。
阻断私有或内部网络端口,避免公网访问是很重要的。使用系统的防火墙安全防护机制,能限制Tomcat访问连接的端口。在80端口上激活Tomcat需要root权限,停止服务却不要。
5.配置
Tomcat主要通过编辑文件及重启Tomcat来实现Tomcat配置。
Cong目录下的配置文件主要有:
Server.xml:Tomcat主配置文件
Web.xml:servlet配置文件
Tomcat-users.xml:Tomcat的UserDatabase Realm用于认证的默认角色、用户及密码清单
Catalina.policy:Tomcat的Java安全策略文件
Context.xml:应用于安装了Tomcat的所有主机的所有部署内容
Tomcat以面向对象的方式运作,在执行期间,基于配置文件的设定动态组建对象结构。Server.xml文件中的每个主要元素都会创建对象、排序。
Server代表tomcat自己,每个server.xml文件只有一个这个元素
Service:共享引擎Engin的连接器
Executor:一个或多个Connector的共享线程池
Connector:Web服务器
Engin:处理所有请求
Host:一台虚拟主机
Context:在Host配置一个web应用程序
Realm:设置用户和角色
页:
[1]