一、概述
Tomcat 6.X实现了JCP的Servlet 2.5和JSP2.1的规范,并且包括其它很多有用的功能,使它成为开发和部署web应用和web服务的坚实平台。
作为开源web服务器的java实现,tomcat几乎就是web开发者开发、测试的首选,有很多其他商业服务器的开发者也会优先选择tomcat作为开发时候使用,在介绍tomcat部署web服务的实现过程之前先了解一下Tomcat的运行架构:
Server->Service(关联一个或多个Connector至某engine)->Engine(Container)->Host(一个engin可以包含多个host,但要有一个默认host)->Context(一个host内部可以有多个context,每一个Context对应与一个web应用程序,而每一个web应用程序需要至少一个部署描述符文件web.xml)
二、安装配置
1、安装前准备:
- 安装包:
- apache-tomcat-7.0.29.tar.gz
- jdk-7u5-linux-i586.rpm
- 安装环境:
- ReadHat 5.5 Kernel:2.6.18-308.el5
- 安装配置JDK:
- # rpm -ivh jdk-7u5-linux-i586.rpm
- # vim /etc/profile //声明变量让依靠JVM运行的应用程序找到java的安装目录//
- 添加和修改如下行:
- JAVA_HOME=/usr/java/jdk1.7.0_05
- PATH=$PATH:$JAVA_HOME/bin
- export JAVA_HOME PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
- # printenv //重新连接主机,查看生效情况//
- JAVA_HOME=/usr/java/jdk1.7.0_05 //确保有该项//
- # java -version //查看java版本//
- 注:/etc/init.d/jexec //JDK启动脚本
- /usr/java/jdk1.7.0_05/ //JDK安装目录
2、安装过程
- # tar xf apache-tomcat-7.0.29.tar.gz -C /usr/local/
- # cd /usr/local/
- # ln -sv apache-tomcat-7.0.29/ tomcat
- # /usr/local/tomcat/bin/catalina.sh start //启动tomcat服务//
验证访问效果:
注:第一次访问速度比较慢,因为要先进行编译;
添加测试页面:
- # cd /usr/local/tomcat/webapps
- # mkdir test
- # cd test
- # mkdir -pv WEB-INF/{lib,classes}
- # vim index.jsp
- 添加网页内容如下:
- <%@page language="java" %>
- <html>
- <head>
- <title>TomcatA</title>
- </head>
- <body>
- <h2><font color="red">TomcatA in www.magedu.com</font></h2>
- <% out.println("Hello,World!"); %>
- </body>
- </html>
重启tomcat服务并访问验证:
- # /usr/local/tomcat/bin/catalina.sh stop
- # /usr/local/tomcat/bin/catalina.sh start
配置自己建立的jsp网页不使用默认的Context来部署而被访问到
(即jsp网页不在/usr/local/tomcat/webapps目录下也能被访问到)
- # mkdir -pv /www/webapps
- # mv /usr/local/tomcat/webapps/test/ /www/webapps/ //将先前我们建好的jsp网页移到/www/webapps目录下
- 编辑配置文件/usr/local/tomcat/conf/server.xml,在host下添加Context
- # vim /usr/local/tomcat/conf/server.xml
- 在host下面添加如下行
- <Context path="/test" docBase="/www/webapps/test" reloadable="true" />
重启tomcat服务并访问验证:
- # /usr/local/tomcat/bin/catalina.sh stop
- # /usr/local/tomcat/bin/catalina.sh start
添加一个更接近实际应用的网站
这里使用的是JavaCenter社交网站,不过在安装之前首先要先安装mysql服务器,这里就不在赘述安装过程了,具体参考http://wjw7702.blog.51cto.com/5210820/957779
- # service mysqld start //启动mysql服务//
- 添加root用户密码
- # mysql -e "SET PASSWORD FOR root@localhost=PASSWORD('redhat')"
- # mysql -e "SET PASSWORD FOR root@’127.0.0.1’=PASSWORD('redhat')" -p
- 下载JavaCenter_Home_2.0_GBK.tar.bz2包至本地/root目录下
- # tar xf JavaCenter_Home_2.0_GBK.tar.bz2
- # mv JavaCenter_Home_2.0_GBK /www/webapps/jcenter
- 编辑配置文件/usr/local/tomcat/conf/server.xml,在host下添加Context
- # vim /usr/local/tomcat/conf/server.xml
- 在host下面添加如下行
- <Context path="/jcenter" docBase="/www/webapps/jcenter" reloadable="true" />
重启tomcat服务并安装JavaCenter
- # /usr/local/tomcat/bin/catalina.sh stop
- # /usr/local/tomcat/bin/catalina.sh start
添加连接数据库用户和密码及创建数据库
添加管理员账户和密码
安装成功
进入空间主页,Javasecter社交网站建设成功
配置通过虚拟主机访问我们的Javasecter社交网站
- 编辑配置文件/usr/local/tomcat/conf/server.xml,添加新的host及Context
- # vim /usr/local/tomcat/conf/server.xml
- <Host name="test.wjw.com" appBase="webapps" // test.wjw.com可以自己命名,tomcat只支持基于名称的虚拟主机//
- unpackWARs="true" autoDeploy="true">
- <Context path="" docBase="/www/webapps/jcenter" reloadable="true"/>
- </Host>
重启tomcat服务并在远端主机hosts文件中添加 172.16.11.11 test.wjw.com访问验证
- # /usr/local/tomcat/bin/catalina.sh stop
- # /usr/local/tomcat/bin/catalina.sh start
配置访问路径中无8080端口
- 编辑配置文件/usr/local/tomcat/conf/server.xml,找到http连接器将8080端口改为80
- # vim /usr/local/tomcat/conf/server.xml
- 修改如下选项
- <Connector port="80" protocol="HTTP/1.1" //这里没有安装apache服务,所以端口不会产生冲突//
- connectionTimeout="20000"
- redirectPort="8443" />
重启tomcat服务并访问验证
添加访问日志文件
- # vim /usr/local/tomcat/conf/server.xml
- 添加如下行
- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" //添加日志文件格式//
- prefix="test_access_log." suffix=".txt" //添加日志文件前缀和后缀//
- pattern="%h %l %u %t "%r" %s %b" /> //添加日文件模式//
重启tomcat服务
- # /usr/local/tomcat/bin/catalina.sh stop
- # /usr/local/tomcat/bin/catalina.sh start
通过windows主机访问并查看日志文件内容
- # cat /usr/local/tomcat/logs/test_access_log.2012-08-10.txt
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET / HTTP/1.1" 200 17784
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /source/script_common.js HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /source/script_face.js HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /source/script_manage.js HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /source/script_ajax.js HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /template/default/style.css HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /source/script_menu.js HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /template/default/gift.css HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /source/script_cookie.js HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /template/default/network.css HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /template/default/p_w_picpath/side_rbox_gray.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /template/default/p_w_picpath/logo.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /template/default/p_w_picpath/button_n.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /template/default/p_w_picpath/thumb20bg.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:43 +0800] "GET /template/default/p_w_picpath/header_bg.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /template/default/p_w_picpath/scroll_page_arrow.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /template/default/p_w_picpath/guest_bg.jpg HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /p_w_picpath/app/doing.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /template/default/p_w_picpath/guest_corner.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /p_w_picpath/app/mtag.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /p_w_picpath/app/album.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /p_w_picpath/app/share.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /data/avatar/000/00/00/01_avatar_small.jpg HTTP/1.1" 404 620
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /data/avatar/000/00/00/01_avatar_middle.jpg HTTP/1.1" 404 620
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /data/avatar/000/00/00/00_avatar_small.jpg HTTP/1.1" 404 620
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /p_w_picpath/app/poll.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /template/default/p_w_picpath/reg_button.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /do.jsp?ac=sendmail&rand=1344529660 HTTP/1.1" 200 5
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /p_w_picpath/app/blog.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /p_w_picpath/app/event.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /template/default/p_w_picpath/footerbar.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /template/default/p_w_picpath/showuser_label.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /template/default/p_w_picpath/avatar_blank.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /data/avatar/noavatar_small.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /p_w_picpath/top.gif HTTP/1.1" 304 -
- 192.168.0.216 - - [10/Aug/2012:00:27:44 +0800] "GET /data/avatar/noavatar_middle.gif HTTP/1.1" 304 –
3、通过Web Gui(图形界面)来管理tomcat服务
那么就来说一下manager和host manager了,manager主要是用来管理程序部署操作、会话管理和查看Status信息的,而host manager主要来管理虚拟主机的,而要访问manager中的不同的接口就需要不同角色来完成,访问gui接口的角色是manager-gui;访问host manager的gui接口需要定义admin-gui角色;
为manager定义一个manager-gui角色和密码
- # vim /usr/local/tomcat/conf/tomcat-users.xml
- 添加如下行
- <role rolename="manager-gui"/>
- <user username="tomcat" password="tomcat" roles="manager-gui" /> // username和password可以根据自己需要来定义//
重启tomcat服务并用定义的manager-gui角色名称个密码登录访问manager
- # /usr/local/tomcat/bin/catalina.sh stop
- # /usr/local/tomcat/bin/catalina.sh start
进入manager管理界面
注:至于manager管理过程这里就不再做详细解释,过程很简单,相信你会的;
为host manager定义一个admin-gui角色和密码
- # vim /usr/local/tomcat/conf/tomcat-users.xml
- 添加如下行
- <role rolename="admin-gui"/>
- <user username="wjw" password="tomcat" roles="admin-gui" /> // username和password可以根据自己需要来定义//
重启tomcat服务并用定义的admin-gui角色名称个密码登录访问host manager
- # /usr/local/tomcat/bin/catalina.sh stop
- # /usr/local/tomcat/bin/catalina.sh start
进入host manager管理界面
注:至于host manager怎么管理虚拟主机的过程这里就不再做详细解释,过程很简单,相信你会的。
4、Tomcat的Session Manager(会话管理)
1)StandardManager(标准会话管理器)
Tomcat服务要正常关闭,会话信息不会丢失;
Kill -9导致服务关闭,会话信息将会丢失; 所有会话被保存到/usr/local/tomcat/work/Catalina/localhost/manager/SESSIONS.ser文件中;2)PersistentManager(持久会话管理器)
将每一个用户请求对应的会话保存至某一目录下Directory指定的目录中的文件中,文件名为Session id.session并通过后台线程每隔一段时间(checkInterval参数定义,默认为60秒)检查一次超时会话;
将会话数据保存至持久存储中,并且能在服务器意外中止后重新启动时重新加载这些会话信息。 支持的会话存储机制: 1)FileStore 2) JDBC存储(JDBCStore)-保存至RDBMS中;为localhost添加标准会话管理
- # vim /usr/local/tomcat/conf/server.xml
- 添加如下行
- <Manager className="org.apache.catalina.session.PersistentManager"
- saveOnRestart="true">
- <Store className="org.apache.catalina.session.FileStore"
- directory="/data/tomcat-sessions"/>
- </Manager>
重启tomcat服务并验证访问manager打开会话信息
- # /usr/local/tomcat/bin/catalina.sh stop
- # /usr/local/tomcat/bin/catalina.sh start
重启tomcat服务,查看以上会话信息依然存在
- # /usr/local/tomcat/bin/catalina.sh stop
- # /usr/local/tomcat/bin/catalina.sh start
定义持久会话管理并将会话保存至FileStore中
- # vim /usr/local/tomcat/conf/server.xml
- 添加如下行
- <Manager className="org.apache.catalina.session.PersistentManager"
- saveOnRestart="true">
- <Store className="org.apache.catalina.session.FileStore"
- directory="/data/tomcat-sessions"/>
- </Manager>
- # mkdir -pv /data/tomcat-sessions //创建保存会话的目录//
重启Tomcat服务并访问manager打开会话信息
- # /usr/local/tomcat/bin/catalina.sh stop
- # /usr/local/tomcat/bin/catalina.sh start
再次重新启动tomcat服务,重新访问manager打开会话信息
- # /usr/local/tomcat/bin/catalina.sh stop
- # /usr/local/tomcat/bin/catalina.sh start
3)小结
以上就是tomcat服务的会话管理的内容,后续更多tomcat的内容将会与大家分享。