一、Jkconnector安装和配置,并整合tomcat集群
1、下载
我选择的是jakarta-tomcat-connectors-1.2.15-src.tar.gz
何为Jkconnector?
Tomcat提供了专门的JK插件来负责Tomcat和HTTP服务器的通信。把JK插件安置在对方的HTTP服务器上。当HTTP服务器接收到客 户请求时,它会通过JK插件来过滤URL,JK插件根据预先配置好的URL映射信息,决定是否要把客户请求转发给Tomcat服务器处理。
Tomcat提供了专门的JK插件来负责Tomcat和HTTP服务器的通信。把JK插件安置在对方的HTTP服务器上。当HTTP服务器接收到客 户请求时,它会通过JK插件来过滤URL,JK插件根据预先配置好的URL映射信息,决定是否要把客户请求转发给Tomcat服务器处理。
2、安装
(1)将jakarta-tomcat-connectors-1.2.15-src.tar.gz包解压到/usr/local目录下
命令:
(2)解压jakarta-tomcat-connectors-1.2.15-src.tar
命令:tar -zxvf /usr/local/jakarta-tomcat-connectors-1.2.15-src.tar
(3)进入jakarta-tomcat-connectors-1.2.15-src/jk/native目录
命令:cd /usr/local/jakarta-tomcat-connectors-1.2.15-src/jk/native
(4)执行buildconf.sh 脚本刷新配置文件
(5)配置apxs连接
命令: /usr/local/jakarta-tomcat-connectors-1.2.15-src/jk/native/configure -with-apxs=/usr/local/apache/bin/apxs
(6)编译配置文件
命令:make
(7)生成mod_jk.so模块
命令:make install
(8)将mod.jk.so模块拷贝到apache服务器的modules目录下
命令:cp /usr/local/jakarta-tomcat-connectors-1.2.15-src/jk/native/apache2.0/mod_jk.so /usr/local/apache/modules
3、配置apache与jkconnector集成,并整合tomcat
(1)打开apache配置文件,添加jk模块,就是我们刚才上面生成的so文件
vi /usr/local/apache/conf/httpd.conf
在263行加入:
LoadModule jk_module modules/mod_jk.so
vi如何显示行号?
在VI的命令模式下输入“:set nu” 或者修改vi配置文件“vi ~/.vimrc”,在其中添加“set nu”
(2)在httpd.conf末尾加入:
#这个指定在apache启动时调用,告诉apache调用可用的tomcat worker实例,这些worker被定义在worker.propertise文件中。该指令必须被定义在全局变量中
JkWorkersFile /usr/local/apache/conf/workers.propertise
# 这个指定作用是通过调用uriworkermap.propertise中定义的内容处理映射关系,将相对应的文件请求教给对象的worker处理。该指令必须被定义在全局变量中
JkMountFile /usr/local/apache/conf/uriworkermap.propertise
#指定tomcat连接模块的日志文件存放位置
JkLogFile /usr/local/apache/logs/mod_jk.log
#日志级别能被定义为debug,info,warn,error,trace
JkLogLevel info
#将请求的内容指向一个worker处理
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
#修改访问组权限303行
User nobody
Group nobody
注:
User和Group是Apache的安全保证,访问权限缺省设置为nobody和nogroup,这个用户和组在系统中不拥有文件,保证了服务器本身和由他启动的CGI进程没有权限更改文件系统。
(3)配置worker.propertise
在/usr/local/apache/conf下,新建worker.propertise文件
命令:vi /usr/local/apache/conf/workers.propertise
添加如下内容:
worker.list=tomcat1,tomcat2,loadbalancer
#========tomcat1========
worker.tomcat1.port=8180
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
#========tomcat2========
worker.tomcat2.port=8280
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=tomcat1,tomcat2
worker.loadbalancer.sticky_session=1
保存退出
说明:
¥这里我们配置了两个tomcat,所以,我们将原来安装好的tomcat复制一份,改名为tomcat2即可,所以现在我们的tomcat_home分别为
/usr/local/tomcat和/usr/local/tomcat
¥定义了两个worker名字为tomcat1和tomcat2,监听端口为8180,8280,主机名为localhost或ip地址,通过ajp13协议与服务器通讯。
定义了第三个worker名字为Loadbalancer,这个worker是用作负载均衡的,worker类型为lb,通过调用tomcat1和tomcat2两个worker做负载均衡, worker.tomcat2.lbfactor参数,它是节点的负载加权,它的值越大,获得负载的机会就越大,即分配到此节点的请求越多。以上两个节点的权重比为1:1,即平均分配,负载甲醛的设置可以根据node的硬件性能进行调整。
¥在定义tomcat1和tomcat2端口时,要和tomcat自身的tomcat_home/conf/server.xml文件中定义的端口号一致,这里定义的8180和8280都是从8009端口修改的
(4)配置uriworkermap.propertise
在/uri/local/apache/conf下,新建uriworkermap.propertise文件
命令:vi /usr/local/apache/conf/uriworkermap.propertise
添加如下配置:
/*=loadbalancer
!/*.gif= loadbalancer
!/*.jpg= loadbalancer
!/*.png= loadbalancer
!/*.css= loadbalancer
!/*.js= loadbalancer
!/*.htm= loadbalancer
!/*.html= loadbalancer
!/*.jsp=loadbalancer
说明:
感叹号表示接下来的
URI
不要由
JK
进行处理,也就是
Apache
直接处理所有的图片、
css
文件、
js
文件以及静态
html
文本文件
(5)修改tomcat配置
¥修改server.xml
命令:vi /usr/local/tomcat1/conf/server.xml
修改:<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2" />(即把jvmRoute项修改为workers.propertise文件中定义个worker名tomcat2,修改tomcat2的配置文件时,将这里修改为tomcat1,根据你自己的实际情况)
修改端口分别为,8005(关闭端口)\8009(启动端口,该端口和上述workers.propertise文件中指定的相同)
举例:
<Server port="9005" shutdown="SHUTDOWN" /> 改自8005
<Connect port=“8180”enableLookups="false" redirectPort="8443" protocal="AJP/1.3" /> 这句话默认是被注释掉的,去掉注释,并加入ajp13协议。修改tomcat2时,将这里修改为8280,根据你自己的实际情况
¥修改/etc/profile文件,加入如下内容。在前面安装jdk,安装tomcat的时候,我们已经部分加入,现在只需根据自己的实际情况改动即可。
export JAVA_HOME=/usr/java/jdk1.7.0_21
export JRE_HOME=/usr/java/jdk1.7.0_21/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
CATALINA_BASE=/usr/local/tomcat1
CATALINA_HOME=/usr/local/tomcat1
export CATALINA_BASE CATALINA_HOME
CATALINA_2_BASE=/usr/local/tomcat2
CATALINA_2_HOME=/usr/local/tomcat2
export CATALINA_2_BASE CATALINA_2_HOME
TOMCAT_HOME=/usr/local/tomcat1
export TOMCAT_HOME
TOMCAT_2_HOME=/usr/local/tomcat2
export TOMCAT_2_HOME
保存退出
source /etc/profile使profile生效
¥修改tomcat启动脚本
添加如下内容:
export CATALINA_BASE=$CATALINA_BASE
export CATALINA_HOME=$CATALINA_HOME
修改tomcat2时,这里修改为
export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME
¥配置完tomcat测试一下,tomcat是否能正常运行。
启动命令:user/local/tomcat1/bin/startup.sh
查看进程:ps -ef|grep tomcat
有进程信息即正常
停止命令:user/local/tomcat1/bin/shutdown.sh
至此,linux下的tomcat集群已经配置完毕了。
测试一下:
在tomcat1和tomcat2中的webapps中分别定义两个测试目录,名字都定义为test,在该目录下新建index.jsp文件,在tomcat1下的index.jsp中写“this is tomcat1”,在tomcat2下的index.jsp中写“this is
tomcat2”
分别启动tomcat1,tomcat2,apache,通过远程浏览器访问,你的服务器ip/test访问,多次F5刷新,看访问结果。
别忘记配置防火墙,或关掉防火墙,如若设置随redhat一起启动apache,都参考第五节
看到这样的结果,说明我们的集群已经起作用了。