Tomcat实现反向代理、负载均衡、内存复制
Tomcat是一个开源的Java EE服务器,想弄明白其中原理还有很长路要走,但是对于有Apache,Nginx经验的我们来说部署它还是没有问题的,下面我们来一步步的构建这些基本的功能吧。
实验环境:rhel 5.8,SElinux已经关闭
一.构建一个基本的Tomcat服务器
不需要额外服务器配合,自己可以直接响应请求。
规划:
- 172.16.1.22 .cat.laoguang.me
1.1 下载安装jdk
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html 选择适合你的平台
- rpm -ivh jdk-7u9-linux-i586.rpm ##默认安装在/usr/java中
1.2 声明JAVA_HOME变量,并为了使用方便将生成的命令加入PATH中
- vi /etc/profile.d/java.sh
- JAVA_HOME=/usr/java/latest
- PATH=$PATH:/usr/java/lastest/bin
- export JAVA_HOME PATH
- source /etc/profile.d/java.sh ##加载刚才的配置
- java -version ##显示版本号代表成功
1.3 下载安装tomcat
- tar xvf apache-tomcat-7.0.33.tar.gz -C /usr/local/
- cd /usr/local/
- ln -sv apache-tomcat-7.0.33/ tomcat ##创建软链接
1.4 声明CATALINA_HOME环境变量,为方便使用生成的命令加入到PATH中
- vi /etc/profile.d/tomcat.sh
- CATALINA_HOME=/usr/local/tomcat/
- PATH=$PATH:/usr/local/tomcat/bin
- export CATALINA_HOME PATH
- source /etc/profile.d/tomcat.sh ##加载刚才配置
- 测试是否生效
- catalina.sh version ##如果显示版本号则成功
1.5 查看tomcat的下的文件与目录
- bin ##命令目录
- conf ##配置文件目录
- lib ##类库
- logs ##日志
- webapps ##事例网站所在目录
- work ##编译时用到的工作目录
- 配置文件最需要注意的有:
- server.xml ##tomcat 主配置文件
- tomcat-users.xml ##认证文件,过会会讲到
- web.xml ##每个站点部署都需用到web.xml,如果站点有用站点的,没有则用这个默认的
1.6 查看示例站点下的文件与目录
- cd /usr/local/tomcat
- ls webapps/examples/
- index.html jsp servlets WEB-INF websocket
- 其它是自定义的,唯有WEB-INF是私有资源的目录,部署时用到的目录,通常是不允许他人访问的,查看下面的目录文件
- ls webapps/examples/WEB-INF/
- classes jsp jsp2 lib tags web.xml
- 需要请注意的有:
- classes ##包含所有服务器端类及当前应用程序相关的其它第三方类等
- lib ##包含JSP所用到的JAR文件;
- web.xml ##包含当前webapp的deploy描述符,定义时部署时用到的私有资源
1.7 启动comcat,查看默认站点
- catalina.sh configtest ##配置文件检测有没有语法错误
- catalina.sh start ##启动
1.8 访问测试,默认监听的是8080,这个是在server.xml中定义的
- http://172.16.1.22:8080/
- 如果能看到那只公猫,就成功了
1.9 添加认证用户,使用页面中的Server Status ,Manager Apps与Host Manager这些管理工具
- vi /usr/local/tomcat/conf/tomcat-users.xml 添加如下
- <rolerolename="manager-gui"/> ##这个组是tomcat规定可以访问manager的组
- <rolerolename="admin-gui"/> ##这个是访问Host Manager的组
- <userusername="tomcat"password="tomcat"roles="manager-gui,admin-gui"/> ##你懂得
点击Server Status ,Manager Apps与Host Manager 输入账号tomcat密码tomcat查看后台的管理信息,具体表示找google吧,其中Manager中有个session,这个里面存的是个个站点的session id,一会儿讲session复制内容会用到。