Tomcat实现反向代理、负载均衡、内存复制

Tomcat是一个开源的Java EE服务器,想弄明白其中原理还有很长路要走,但是对于有Apache,Nginx经验的我们来说部署它还是没有问题的,下面我们来一步步的构建这些基本的功能吧。

实验环境:rhel 5.8,SElinux已经关闭

一.构建一个基本的Tomcat服务器

不需要额外服务器配合,自己可以直接响应请求。

规划:

172.16.1.22 .cat.laoguang.me

1.1 下载安装jdk

下载地址: 选择适合你的平台

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中定义的

: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复制内容会用到。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/83f14dff2057274c70a2c8670c62e6b0.html