Apache+tomcat集+session复制
作者:吴钢奇
时间:2010/09/23
MSN:w7374520@hotmail
目标:在服务器上搭建1个apache+4个tomcat应用,tomcat之间实现session复制。Tomcat解析所有的网页,apache此刻的作用就是做代理。参考了很多网上好文档,非常感谢前人无私奉献,谢谢!
1、环境
硬件:一个四核3.0CPU,4G内存,200GSATA硬盘
系统:Redhat AS 5.3
源码包下载:
1、Httpd下载
mirror.bjtu.edu/apache//httpd/httpd-2.2.
2、Tomcat下载
ak//tomcat/tomcat-7/v7.0.2-beta/bin/apache-tomcat-
7.0.
3、mod_jk 下载地址:
/dist/tomcat/tomcat-connectors/jk/source/jk-
1.2.30/tomcat-connectors-1.2.
2、安装apache
[root@adman ~]# cd /usr/local/src/ #进入源码包下载目录,这个可以随便定[root@adman src]# tar zxvf httpd-2.2. #解压缩
[root@adman src]# cd httpd-2.2.16 #进入解压目录
[root@adman httpd-2.2.16]# ./configure --prefix=/usr/local/apache2 \
> --enable-cache \ #configure参数根据自己的需要添加
> --enable-mem-cache \ —
可以使用help获得相关参数
> --with-mpm=prefork \
> --enable-so \
> --enable-rewrite \
> --enable-ssl
[root@adman httpd-2.2.16]# make #编译
[root@adman httpd-2.2.16]# make install #安装
[root@adman httpd-2.2.16]# cd /usr/local/apache2
[root@adman apache2]# vim f
52 # LoadModule foo_module modules/mod_foo.so
53 LoadModule jk_module modules/mod_jk.so #添加jk模块,模块是编译jk1.2.30得到
下载apache106 DocumentRoot "/usr/local/webapps" #修改文档主目录
133 <Directory "/usr/local /webapps"> #修改文档主目录
146 Options Indexes FollowSymLinks
158 Order allow,deny
159 Allow from all
160
161 </Directory>
416 Include conf/f #添加jk配置文件,在末尾直接添加
如果apache日志出现: session cache no configuration 警告信息请添加下面两行。可以解决。
417 SSLSessionCache "shmcb:/usr/local/apache2/logs/ssl_scache(512000)"
418 SSLSessionCacheTimeout 300
[root@adman apache2]# service httpd start #测试是否可以正常启动,看日志是否有报错
[root@adman apache2]# netstat -naptl|grep 80 #查看80端口是否启动
3、安装jk模块
[root@adman apache2]# cd /usr/local/src/ #进入下载目录
[root@adman src]# tar zxvf tomcat-connectors-1.2. #解压缩
[root@adman src]# cd tomcat-connectors-1.2.30-src #进入目录
[root@adman tomcat-connectors-1.2.30-src]# cd native/ #进入native,必须的[root@adman native]# pwd #查看绝对路径
/usr/local/src/tomcat-connectors-1.2.30-src/native
[root@adman native]# ./configure --with-apxs=/usr/local/apache2/bin/apxs #指定apxs路径[root@adman native]# make #编译,但是不需要安装,我们需要的只是mod_jk.so模块而已,
这一步已经生成了。但是我不知道它生成的位置,使用find查
[root@adman native]# find /usr/local/src/tomcat-connectors-1.2.30-src -name mod_jk.so #so
/usr/local/src/tomcat-connectors-1.2.30-src/native/apache-2.0/.libs/mod_jk.so
/usr/local/src/tomcat-connectors-1.2.30-src/native/apache-2.0/mod_jk.so
[root@adman native]#cp-ar apache-2.0/mod_jk.so/usr/local/apache2/modules/#到mod_jk后拷贝到apache目录中的module下。
到f添加一行加载模块,这个上面已经做了
LoadModule jk_module modules/mod_jk.so
四、安装tomcat
[root@adman native]# cd /usr/local/src/
[root@adman src]# tar zxvf apache-tomcat-7.0.
[root@adman src]# cp -ar apache-tomcat-7.0.2 /usr/local/apache-tomcat-7.0.2-lb1
[root@adman src]# cp -ar apache-tomcat-7.0.2 /usr/local /apache-tomcat-7.0.2-lb2
[root@adman src]# cp -ar apache-tomcat-7.0.2 /usr/local /apache-tomcat-7.0.2-lb3
[root@adman src]# cp -ar apache-tomcat-7.0.2 /usr/local /apache-tomcat-7.0.2-lb4
[root@adman src]# vim /usr/local/adsit/apache-tomcat-7.0.2-lb1/l
修改第一处:修改关闭tomcat端口,第一个默认为8005,第二个修改为8006,第三个修改为8007,第四个修改为8008
修改第二处:修改tomcat提供服务端口,默认为8080。第一个修改为8081,第二个修改8082,第三个修改8083,第四个修改8084
修改第三处:此处的端口是workers.properties文件中的port,作用是apache连接tomcat的连接端口。
第一个修改过为8010,第二个修改8020,第三个修改8030,第四个修改8040
修改第四处:修改tomcat网站文件存放主目录的路径
修改第五处:在</Host>前面添加两行context代码,这段代码的意思是说在"/usr/local/webapps"目录下有目录,是两个工程。/代表访问admin目录,访问方式:ip /site代表访问test目录,访问方式:ip/test
[root@adman src]# cat /usr/local/adsit/tomcat-start7.sh #测试4个tomcat启动是否正常source /etc/profile
#/usr/local/apache2/bin/apachectl start
/usr/local/adsit/apache-tomcat-7.0.2-lb1/bin/startup.sh
/usr/local/adsit/apache-tomcat-7.0.2-lb2/bin/startup.sh
/usr/local/adsit/apache-tomcat-7.0.2-lb3/bin/startup.sh
/usr/local/adsit/apache-tomcat-7.0.2-lb4/bin/startup.sh
sleep 20s
/usr/local/apache2/bin/apachectl start
[root@adman src]# netstat -naptl |more #查看是否有8081、8082、8083、8084
tcp 0 0 :::8081 :::* LISTEN 4410/java
tcp 0 0 :::8082 :::* LISTEN 4427/java
tcp 0 0 :::8083 :::* LISTEN 4437/java
tcp 0 0 :::8084 :::* LISTEN 4461/java
5、利用mod_jk关联apache和tomcat
到f中添加,我们上面已经添加,就是使用Include参数指定mod_jk路径
[root@adman src]# vim /usr/local/apache2/conf/f #新建并配置这个文件JkWorkersFile conf/workers.properties #
JkLogFile logs/mod_jk.log #记录日志
JkLogLevel error #日志级别
JkShmFile logs/mod_jk.shm #内存共享文件
JkMount /*.* balancer #加载根目录所有的文件,balancer可以随便取名JkMount /adman/*.* balancer 只是需要worker.list=balancer一致即可
JkMount /digieq/*.* balancer
你可以从/usr/local/src/tomcat-connectors-1.2.30-src/conf/workers.properties中拷贝到apache的conf中,自己也可以新建。
[root@adman src]# vim /usr/local/apache2/conf/workers.properties
[root@adman ~]# cat /usr/local/apache2/conf/workers.properties
worker.list=balancer #定义负载均衡的名称
pe=lb #定义负载均衡的类型,为lb
_escalation_time=0 #切换错误状态时间
worker.balancer.max_reply_timeouts=10
plate #lb1参考plate工作模板
worker.lb1.host=localhost #lb1的ip地址
worker.lb1.port=8010 #lb1端口,这里是ajp端口,不是网站端口worker.lb1.activation=A #A:active模式D:sticky模式S:不使用
plate
worker.lb2.host=localhost
worker.lb2.port=8020
worker.lb2.activation=A
plate
worker.lb3.host=localhost
worker.lb3.port=8030
worker.lb3.activation=A
plate
worker.lb4.host=localhost
worker.lb4.port=8040
worker.lb4.activation=A
worker.balancer.balance_workers=lb1,lb2,lb3,lb4 #负载均衡的工作者名称
worker.balancer.sticky_session=1 #1代表为true,0代表为false。
#worker.balancer.sticky_session_force=true
[root@adman ~]#
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论