玩转Tomcat

  • 介绍

Tomcat是Apache开发的一个应用服务器,官网地址http://tomcat.apache.org/

使用Tomcat需要有JRE环境,并且配置好JAVA_HOME,然后解压放到一个目录中就可以使用了。这是一个用Java开发的程序,当然是跨平台的啦。

  • 目录结构

在它的根目录下,一般会有bin、conf、lib、logs、temp、webapps等目录。

bin目录里面放的是tomcat的可执行程序,也包括 它的启动脚本(windows和linux下的)。

bootstrap.jar tomcat启动的入口jar

tomcat-juli.jar 跟日志相关(tomcat启动时需要依赖该jar)

commons-daemon.jar (bootstrap依赖该jar)

catalina.bat

conf目录里面是tomcat的配置文件,启动时候会读取这些配置文件。

lib目录中有tomcat 运行需要的jar包,也有web程序可能公用的jar包(例如servlet包)。

logs目录是tomcat启动、运行时的日志文件。

temp目录当然 是用来放临时文件的啦。

webapps这个目录是开发时候,经常要用到的,用来存放web程序。

  • 启动

最简单的启动方式就是双击“startup.bat”文件了,这是一个用来引导、启动tomcat的批处理文件,感兴趣的可以看看代码。

另一种就是直接运 行jar文件了,在命令行中进入bin目录,输入一下命令:java -jar bootstrap.jar就可以启动啦。

嗯,如果是在Windows平台下的话,也可以把tomcat加入到services中,用启动服务的方式来启 动tomcat。

它的默认端口是8080,你如果是用官网上下载的完整版的话,启动以后,打开浏览器输入http://localhost:8080就可以访问到它的主页;如果无法访问,说明你没有正确的启动哦。

  • Windows服务

service.bat这个批处理文件是用来把Tomcat加入到Windows服务中。(注意:运行这些命令前,要在环境变量path中加入 java)

service install tomcat 添加名为tomcat的服务

service remove tomcat 删除名为tomcat的服务

sc config tomcat start= auto 设置tomcat为自动启动,等号右边的空格是必须的

./catalina.sh jpda start

  • 关闭

最直接,同时也是最暴力的方式就是把那个命令行窗口关掉啦。

另外,也可以运行bin目录下的shutdown.bat脚本或者是通过telnet命令来关闭。

输入命令:telnet localhost 8005,然后输入SHUDOWN即可。

  • 配置

server.xml是经常会接触到的配置文件,通过这个配置文件可以修改tomcat的服务端口、增加虚拟目录等等。

在Host中间加入<Context docBase="e:/tddownload/ext-3.3.1/docs/" path="/ext" reloadable="true" />,参数docBase为程序路径,path为访问路径(http://localhost/ext),reloadable如果为true程序发生变化后tomcat会自动重启。

修改这里的port参数可以改变访问服务的端口。(注意:在server.xml文件中有很多端口,参数protocal为http的才是访问端口)<Connector port="80" protocol="HTTP/1.1" />

<Server port="8005" shutdown="SHUTDOWN">。参数port是tomcat监听的一个端口,shutdown是那个端口接受的字符串,给port指定 的端口发送shutdown指定的字符串将关闭tomcat。

  • 连接器

className 是连接器的实现类

minProcessors和maxProcessors 是用于处理请求的线程池数量

enableLookups 指定调用方法getRemoteHost时是否利用DNS来查找域名

acceptCount 最大连接数

connectionTimeout 连接超时时间

compression 是否开启压缩

compressableMimeType 要开启压缩的文件格式

URIEncoding 对GET请求中的URI编码格式

redirectPort 当处理HTTPS请求时的转发端口

org.apache.coyote.http11.Http11AprProtocol

org.apache.coyote.http11.Http11NioProtocol

org.apache.coyote.ajp.AjpAprProtocol

  • 列出本地目录

在conf\web.xml中,配置servlet,增加键值对listings–true

logs目录中存放的是Tomcat的日志信息,catalina.out就是Tomcat启动时候在控制台输出的所有信息,在Linux下可以用命令tail -f conf/catalina.out来适时地查看日志信息

另外,如果用脚本startup.sh或者startup.bat启动Tomcat的话,不会有命令行的输出,这时候就要用到上面的日志文件了。

  • HTTPS

首先使用命令行工具keytool添加一个证书文件。然后找到server.xml文件中如下配置片段:

主要是添加keystoreFile和keystorePass,protocol以及其他属性可以不作改变。

最后你就可以从浏览器中打开地址:https://localhost:8443测试了。

  • 数据源

下面是tomcat中配置(server.xml)的全局 JNDI数据源:

下面是DBCP数据源的配置:

下面是C3P0数据源的配置:

  • 使用数据源

下面是针对某个web应用的配置,在server.xml文件中:

下面是针对全局的配置,在context.xml中:

  • 端口占用

如果在启动Tomcat时,发生端口被占用的情况,可能需要把对应的进程结束(kill)掉。下面我分Windows和Linux两种环境来介绍:

Linux下可通过命令(netstat -anlp | grep java)找到对应的进程,然后在kill -9 2345。

Windows下的命令是netstat -ano | findstr java,结束用taskkill /f /pid 2345。

NFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

  • 参考

Tomcat系统架构与设计

Tomcat集群搭建简明教程

Eclipse插件开发tomcat扩展

Tomcat原理分析

http://252401762.iteye.com/blog/310078

发表评论

电子邮件地址不会被公开。 必填项已用*标注